当ADO连接上数据库,运行正常时,
我将网线断开,再连上,这时ADO.connected是true,但程序实际上和数据库仍然断开.
请问如何解决?即程序不须人为操作(在网络断或通的情况下)

解决方案 »

  1.   

    Ado.Close;
    然后再连接
    Ado.Connected := True
    ....
      

  2.   

    你想解决什么?是让他和数据库连结?还是ADO.connected是false?
      

  3.   


    如果想通过插网线让数据库连结,不可能 :-(呵呵其实你可以在每次访问数据库的时候先ADO.connected:=true;这样你关它以前什么状态呢,反正我相连的时候你要是true  :-)
      

  4.   

    可以看看通过win2000下的网络状态(系统自动监测的)来激发连接事件
      

  5.   

    在需要连接的时候用Try。。except
    如果出错的话就设置ado.connected为false
      

  6.   

    if  網線插上 then
       ado.connected:=true
    else 
       ado.connected:=false;
      

  7.   

    每次操作数据库时,使用try获取发生异常的错误信息,如果是数据库断开连接的,就进行重连操作.这是一般数据库重连的原理, 我在程序里就是这么处理的.
      

  8.   

    在程序中加入异常处理语句,当出现无法正确存取数据的错误时尝试
    ADOConnection.connected:=True;
      

  9.   

    告訴你吧!絕對可以的!
    在Uses 中加入 Wininetprocedure testonline;
    var I:integer;
    begin
    types:=internet_connection_modem+Internet_connection_lan+internet_connection_proxy;
    if internetgetconnectedState(@types,0) then
      showmessage('your pc is online!')
    else
      showmessage('your pc is offline!')
    end;
      

  10.   

    这些方法我都试过了。
    我是想让程序运行后就不用再管了。(不管网线断或通)
    但现在断后又通时,程序就不再写数据到数据库中。
    在except中用ado.connected:=true没有用
    在写数据时直接用ado.connected:=true也没有用
    我????
      

  11.   

    这是肯定了,因为三层数据之间的交负基本上是实时的,断开后Delta数据包就是不准确的啦,你最好写一个服务器存储数据的过程,由服务器提交数据,即使断开也可以写数据到库中。
      

  12.   

    写一个通信服务程序,一旦监测到网络连接不正常,就发送message给你当前的程序,让其断开于数据库的连接,等网络正常后,在发送消息让其试图连接