最近使用VC6开发程序连接SQL Server数据库,使用的是codeproject.com上面的一个ADO类,地址如下:
http://www.codeproject.com/Articles/1075/A-set-of-ADO-classes-version-2-20
类库很好用,大部分功能都已封装进去,直接调用即可。最近测试应用程序发现在网络故障(网线断开,网卡、交换机故障等)情况下程序会自动断开与SQL Server的连接。通过以上ADO类库中的IsOpen()等函数均无法判断出“断开状态”,检测m_pConn->State等变量无法给出断开状态。
网上查询到的一些文章:
http://blog.csdn.net/edward22/article/details/6118360
http://bbs.csdn.net/topics/110168358
http://bbs.csdn.net/topics/50377948
http://bbs.pediy.com/showthread.php?t=119706
总结一下:
通过其他的方式判断ADO连接是否正常
1.可以设置定时器或开设线程定时ping服务器网卡。
2.当ADO连接断开后,执行其他SQL语句会抛出异常,so,可以在捕获异常后重新连接数据库。(异常描述关键字:连接失败)