我用ado连接远程oracle数据库,如果远程数据库异常或网线等原因无法打开表,用下面代码为什么不会立即显示"无法打开数据库表!"?而是程序处于"死机"状态.请问用什么方法能立即测试出是否连接成功.谢谢!
  with adoquery1 do
      begin
      try
         close;
         sql.Clear;
         sql.Add('select * );
         sql.Add('from table1 where u_id=:myid');
         Parameters.ParamByName('myid').Value:=Edit1.text;
         open;
      except
          showmessage('无法打开数据库表!');
      end;
      end;

解决方案 »

  1.   

    用一个数据库连接控件ADOConnection1
    try
      if ADOConnection1= False then
       ADOConnection1.open;
    except
      showmessage('数据库连接失败');
      ADOConnection1.Free;
      Exit;
    end;试试可不可以
      

  2.   

    死机状态是出在什么地方呢?
    open后就死了吗?那说明他在拼命的尝试连接,把超时(ConnectionTimeOut)设置一下应该可以解决。
      

  3.   

    晕啊,这样的话,它肯定不会在第一时间给你返回的,但是你的程序还是要执行的,SO,你可以在ADOConnection的onConnection中得到信息,或是ConnectionError中得到。
      

  4.   

    同意 yuyupluck(莫笑我提得笨) 
    不过在设计时要把ADOConnection1.Active设为False
      

  5.   

    要有段时间响应的,用户没权限,都可能导制锁表。你别用调试状态,直接执行exe