本帖最后由 han408 于 2010-11-10 21:31:35 编辑

解决方案 »

  1.   

    ADOQuery(以ADOConnection连接)执行查询或ADOConnection执行查询时try
      ...
      ADOQuery1.SQL.Text:= '...';
      ADOQuery1.Open;
      ...
    except
      on e: Exception do 
      begin
        Showmessage(e.Message);
      ...
      end;
    end;
      

  2.   

    使用try语句可行。socket连接如下,其它类似。try
      ADOCon.Connected:=False;
      ADOCon.ConnectionString:='....';
      ADOCon.ConnectionString:=ConnectionString;
      ADOCon.Connected:=True;
    except
      on e: Exception do 
      begin
        Showmessage(e.Message);
      ...
      end;
    end;
      

  3.   

    嘿嘿,通常非正常退出的情况下,ADOConnection1.connected 不会自己设置成 false 的,所以,时间控件里,应该是不断地尝试执行一个SQL语句,比如 Select Getdate() ,一旦发成异常,你就当作是断开了。这样如何?
      

  4.   

    procedure TMain_Frm.FormCreate(Sender: TObject);
    begin
      try
        ADOConnection1.ConnectionString:=
        'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+extractfilepath(Application.ExeName)+'KYE.mdb;Persist Security Info=False';
        ADOConnection1.LoginPrompt:=False;
        ADOConnection1.Connected:=True;
        except
          Application.MessageBox('數據庫連接文件出錯!請與MIS聯系!!!', '錯誤',
            MB_OK + MB_ICONSTOP);
          Application.Terminate;//數據庫連接文件出錯,程序中止退出
          end;
    end;
      

  5.   

    kye_jufei:
    你这次可以误人子弟啦楼主,你基本上可以放弃这个想法了
    因为经常看到人问,基本没什么能解决的办法。
    如果用timer去定时查,又消耗资源