cn.State = adStateOpen
可以的

解决方案 »

  1.   

    不行,adStateOpen只是表示连接打开成功,并不表示当前连接是否有效。
      

  2.   

    我试过了,连接建立后,状态是adStateOpen,过一会断开网络连接,数据库操作报错时,connection的状态仍然是adStateOpen。
      

  3.   

    那就麻烦了。那你首先要判断客户端到sql server的网络连接是否正常,然后再判断数据库的连接是否有效。
      

  4.   

    那就麻烦了,你首先要判断客户端到sql server的网络连接是否正常,可以通过ping方法来实现;然后再判断到数据库的连接是否有效。
      

  5.   

    如果你的Adoconnection的keepconnection属性设为true的话,那么你可以使用ondisconnect来判断连接是否断开,如果是false的话,ondisconnect是不行的,应为你在其它的Ado控件如adoquery里将adoquery的active设为false或者使用close都会触发ondisconnect事件将Active设为true或者open之后就会触发afterconnect事件,使用事件察看器跟踪发现,将AdoQuery的open时(Active=true)事实上作了一个sp_reset_netconnect(可能写错了)的动作。