Try
  ADOConnect1.connected:=True;
Except
  ShowMessage('由于数据库服务器不存在或者是账号密码错引起的连接失败!');
end;
就这样啊,但是你必须是在运行可执行文件时才行,也就是说直接点开编译好的.EXE文件,不要在DELPHI环境下测试。
行的话要加分哦。

解决方案 »

  1.   

    try
      ...
    Except
      if TADOconnection.Errors.Count>0 then 
        Case TADOconnection.Errors[0].NativeError of 
         xx:...
        End;
    End;
    TADOconnection.Errors[0].NativeError中返回的是数据库原始错误编号,根据此编号查数据库帮助就可以得知具体的错误信息。比如Oracle的1005,1017号就是用户名或密码错,12154是服务器不存在。TADOconnection.Errors[0].Description
    TADOconnection.Errors[0].Number
      

  2.   

    你用的oracle库吗?不妨试试Jiker(涛声依旧)的方法,
    我用SQL SERVER的,把TADOconnection.Errors[0].NativeError取出来总是6。
    用捕捉错误类型的方法的话,先要找出错误类,是EoleException,问题是不论服务器不存在还是密码错,其错误类型都是EoleException,可用查看抛出的错误类的classname属性。
    程序把密码错和服务器不存都当作了OLE automation错,看来这种办法区分起来很难了,我再考虑其他的办法吧。