我正在检查我的 SQL 连接状态:
_ConnectionPtr m_pADOConnection;
// Connection is created and working fine...
// Now I disable network adapter (from Control panel)
if( (pApp->m_pConnection->GetState() == adStateOpen) )
{
// I got here every time....
}
问题是我每次都得到 adStateOpen 即使连接真的不起作用!
如果我尝试执行查询或做任何失败的事情,主要是
SMux Provider: Physical connection is not usable [xFFFFFFFF].
或
Error number: 80004005 = Unable to open a logical session
State 属性的这个值是否可靠,或者我需要执行一些其他检查以检测此状态?
最佳答案
当连接中断时,state 属性不会变为 0 (adStateClosed)。所以检查连接状态总是会返回1(adStateOpen),即使在连接中断之后也是如此。
不,没有办法立即检查。 SQL 服务器的体系结构不允许这样做。
我建议您创建一个错误处理程序。
看起来好像建立连接已丢失的唯一方法是尝试打开它并处理错误。
关于c++ - 在 ADO 中检查 SQL 连接状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33303088/