客户端与SQL Server之间的网络品质不是很好,有时候网络连线会中断。在网络中断的时间内,如果我执行了某种数据库操作,系统会出现错误提示"连线失败"。
如果这个时候数据库服务器之间的网络连接又正常了,再执行刚才的操作,数据库操作还是会失败。提示还是"连线失败"。
此时我查询AdoConnection和AdoDataset的Connect和Active状态,他们为True.有没有什么办法让这些组件聪明一点,重试时能够恢复以前的连接?

解决方案 »

  1.   

    我想就是,提示数据库连接失败,然后系统出现登陆的界面
    或者,在一个时间段内,PING服务器,通后在连接一次方法很本
      

  2.   

    但是,对于一个作为中间层的service,这该如何处理呢?另外如何知道当前的数据库操作失败的原因是"连线失败"?
      

  3.   

    把connection 用一个GetConnection函数封装起来。
    每次获取连接自动检查连接是否有效,用try捕捉异常,出现异常则重新连接数据库。
      

  4.   

    可将AdoConnection的Connection属性里Builder部分的文本保存在一个变量里,再次连接的时候重新赋值试试看