有没有象ADO.net一样的解决方案呢???
Ado好象必须是连接的,如果中途断了,程序就要重启的

解决方案 »

  1.   

    引用 12 楼 xuxugr 的回复: 
    ADOQUERY1.Connection:=nil;        
        try  
          adoConnection1.Close;  
          adoConnection1.Open;  
          ADOQUERY1.Connection:=adoConnection1;  
          ADOQUERY1.UpdateBatch();  
        except  
          showMessage(GetErrorInfo);  //提示出错信息  
        end; 
    用这种方法解决不少问题 
    每次还是ping一样网络,如果成功就不必要,如果不成功就再执行以上代码 这样想保存的数据也不会丢失,我刚也遇到这样的问题,对方是用的无线路由器的引起
      

  2.   


    很想知道如何利用时钟来控制休眠
    sleep(500)?
    procedure TForm2.Timer4Timer(Sender: TObject); 
    var 
      strError:string; 
      ConnStr,ServerIp:string; 
      tmpStrList :TStringList; 
    Const 
      CONNECTABORT_SQLSERVER1 = '08S0 '; //连接失败的错误号(SQLSERVER) 在简体版本下,显示不出最后一位 
      CONNECTABORT_SQLSERVER2 = '08S01'; //连接失败的错误号(SQLSERVER) 
      CONNECTFAULT_SQLSERVER = '08001'; //连接不上服务器的的错误号(SQLSERVER) 
    begin 
      if Form1.ADOConnection1.Errors.Count >0 then 
      begin 
        strError := Form1.ADOConnection1.Errors.Item[0].SQLState; 
        if (strError = CONNECTABORT_SQLSERVER1)or(strError = CONNECTABORT_SQLSERVER2)or(strError = CONNECTFAULT_SQLSERVER) then 
        begin 
          Timer2.Enabled := false; 
          Timer3.Enabled := false;       ConnStr := Form1.ADOConnection1.ConnectionString; 
          tmpStrList := Common.SplitString(ConnStr,';'); 
          ServerIp := tmpStrList.Values['Data Source']; 
          tmpStrList.Free;       if PingServer(ServerIp) then 
          begin 
            Form1.ADOConnection1.Connected := false; 
            Try 
              Form1.ADOConnection1.Open; 
              Timer2.Enabled := true; 
              Timer3.Enabled := true; 
            Except 
            end; 
          end; 
        end; 
      end; 
    end;
    这里如何来控制休眠,在哪进行修改,演示一下