Adoqury连接出错后怎么恢复?
比如我用下面这个过程:
with adoquery1 do
begin
  while not eof do
  begin
    ...
    next;//假如这步网络断了或是数据库连不上了导致出错,
         //下次我还要执行这个过程,怎么恢复制才行?
         //我用try next; excpect close;open;end;都不行,怎么弄才行
  end;
end;  

解决方案 »

  1.   

    如果出错,就结束过程
    如:
    begin
    try
      //dosomething
    except
    showmessage('网络错误!');
    exit;
    end;
      

  2.   

    To : pandarus(雨季):就是报ODBC连接出错
    注:我是用ODBC连接SQL 2000To:: guorui_wh(Re) 
    给点专业精神好不好,如象你那做,我早会了,
    我还这干吗?
      

  3.   

    To  guorui_wh(Re) :
    那你的意思这种情况是没法恢复啦?
    如是这样我只好想别的办法了。
      

  4.   

    To  delphi0build(超级模块) :
    老大,呵呵,我现在要做的东东就你觉得烦了的那部分,因为数据量有时特别大,
    而且要对数据进行处理,所有在循环体没执行完是很正常的,其它的问题我都解决了,现在关键的就是这个和SQL Server服务器断开后的恢复搞不定。
    难道真的要重启程序,哎,搞了这么长时间还得用最烂的方法,各位就没有什么好办法吗/
      

  5.   

    ok,我搞定了,与大家分享,明天结束此问题
    procedure TForm1.Timer1Timer(Sender: TObject);
    begin
      application.ProcessMessages;
      timer1.Enabled := false;
      try
        self.ADOQuery1.Close;
        ADOQuery1.SqL.clear;
        self.ADOQuery1.SQL.Add(s);
        self.ADOQuery1.Open;
        self.ListBox1.Items.Add('yes');
      except    self.ADOQuery1.Close;
        self.ADOQuery1.Free;    self.ADOQuery1 := TADOQuery.Create(application);
        self.ADOQuery1.ConnectionString := c;    self.ListBox1.Items.Add('no');
      end;
      self.Invalidate;
      timer1.Enabled := true;
    end;
      

  6.   

    wjm2000():怎么把我的土方法学去了?哈哈