在vb中怎样检测已经连通的数据数(sql数据库)是否还在连通SQL数据库 
Dim Cnn As ADODB.Connection
dim m_dsn
m_dsn = "Data Source=" & Trim(ServerIP0) & ";Provider=SQLOLEDB.1;Integrated Security=;Persist Security Info=False;User ID=BookStore;PWD=xhSQL;Initial Catalog=BookStore;"set Cnn=new ADODB.Connection
Cnn.open m_dsn过几分钟后
我想查测一下Cnn是否还是在连通
不能再用Open 因为这样效率比较低
我想用一种比较好方法,请高手指教!(比如ping 1.1.1.99 ,这一看就知道否通)上次别人教我用下面这种方法,但是我拔掉网线,cnn.state还是adstateopen ,检测还是通的,请问高手还有什么属性可以检测的吗?if cnn.state=adstateopen then 
msgbox "通的"   
else
msgbox "断的"
end if

解决方案 »

  1.   

    添加一个timer控件,
    设置interval属性为50ms,
    再把以上这段IF代码放到时间控件中实时监控试试看。。
      

  2.   

    拔掉网线并且cnn.state在未关闭连接的状态下检测就是连通的
    只有在使用的时候才能发现是断开的
      

  3.   

    用Timer控件每隔一会儿就检测一下,并且用错误捕获程序来进行错误捕获,执行一条查询语句,如果执行时产生错误被捕获到,发现是不能连接的错误代码则说明连接已断开。
      

  4.   

    我就是用Timer控件来检测的,拔开网线还是Cnn.State = adStateOpen Private Sub Timer1_Timer()    If Val(Left(Now, 2)) Mod 2 = 0 Then
            If Cnn.State = adStateOpen Then
                HeadLin = True
                   Else
                HeadLin = False
            End If
        End If
    End Sub
      

  5.   

    应该有个时间的吧,过段时间(cnn.ConnectionTimeout = 15)你可以发现不连接了
      

  6.   

    不是你设定的,是cnn.ConnectionTimeout = 15这样的响应时间
      

  7.   

    上次我随便说了一下,但是看来不行
    这次改变方法如果你的数据库容易断,采用下面的函数
    Public Function ConnectToDB() As Boolean
    '连接数据库
    ConnectToDB = TrueIf cn Is Nothing Then
       Set cn = New ADODB.Connection ''设置ado的连接对象
    End IfIf cn.state = adStateClosed Then ''如果其状态是关闭就重新打开    '如果是关闭的就重新连接
        On Error GoTo errTrap '' 设置出错处理
        
        cn.Open strCon ''打开连接  strCon 为一常量,定义在公共模块里面,写出来的方法按上面步骤
        
        Exit Function
        
    errTrap:          MsgComErr ''如果出错时报错
              
              cn.cancel ''取消连接
              
              ConnectToDB = FalseEnd IfEnd Function
    在任何对数据库操作前判断
    if not ConnectToDB then 
    msgbox "断了,检查网络"
    end if如果使用的是updatebatch
    则在updatebatch之前检查也就是在任何提交到数据库前检查,这样会比较麻烦,但是不用timmer,对数据库压力小
    不知道这样行不行?
    我没有测试过,如果不行你可以这样,任何连接前,打开一个新的cn,看是否连上,连不上报错,此时……感觉对数据连的太多,性能有影响