我使用PowerBuilder 9.0+ Sql Server 2000,PC通过无线AP连接到本地网络。当网络状况发生变化(关闭无线AP或断开网络连接)时,在PB应用程序中发生“数据库错误10005”。然后我取消选中自动关闭并自动收缩我使用的数据库的属性。当我断开网络连接但在关闭ap时没有发生错误。在这种情况下如何避免这种错误?任何建议将不胜感激。谢谢。
答案 0 :(得分:0)
Google搜索此错误代码表示生成此消息时连接已失效。这可能是:
以下是PB观点的一些评论。 (希望更精通SQL Server的人也可以加入。)
PB Bug Google搜索提出了很多报告此错误消息的PB10前问题;这可能意味着 是一个PB问题,或者是DBLib问题(PB10后来为新标准抛弃了现在过时的MSS / DBLib接口)。您正在使用的PB版本很旧;你可能会对抗几年前修复的错误。
PB解决方案如果SQL Server(客户端或服务器软件)正在向您(故意或意外)执行此操作,您可以做的最优雅的事情是使全部您的数据库访问更具弹性,查找10005之类的错误,重新建立连接,然后再次尝试。这会让恢复变得透明,但我会想象,这将是很多工作。 (如果有人有先见之明,以一种简单的方式封装你所有的数据库访问,那么他们就比我更好。)
一个更丑陋的解决方案是将DISCONNECT并重新连接到数据库的菜单项,并在用户切换网络环境时向用户提供指令。
这两个都会强制您考虑是否维护了特定于数据库会话的任何内容(例如,物理表或行锁,而不是DataWindow本身使用的逻辑锁定),因为当会话时所有这些都将丢失被杀了。
祝你好运,特里。