如何捕捉数据库连接错误信息“SQL Server 不存在或访问被拒绝”?(100分)

A

AsStone

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾,且看:
我用 ADO+DELPHI6+SQL SERVER2000,当 AdoConnection 连接 SQL SERVER 成功后时,
ADoConnection.Active := True。 一段时间后由于网络断开,但
ADoConnection.Active 仍为 True, 此时若调用 AdoQuery.Open, 发生错误
“SQL Server 不存在或访问被拒绝”?,或“连接失败”,请问如何捕捉以上错误(
当捕捉到错误后,就可将 Adoconncetion.Close, 再Open 重新连接)。
谢谢!!在线等待!!
 
你可以使用try...except的结构绕过这个错误。
如:
try
ADOQuery.Open;
except
ADOQuery.Connection.Close;
ADOQuery.Connection.Open;
showmessage('Please try again.');
end
 
谢谢答复!
但是这样是不管出现什么错误都先将连接断开,再重连,应该有更好的办法吧?!
 
Try
SQL_DB.Connected:=True;
Except
on E:EDBEngineError do
begin
if E.Errors[0].ErrorCode=11277 then
...
end;
end;
 
刚才的是BDE的,ADO应该这样
Try
ADOConnection1.Connected:=True;
Except
if ADOConnection1.Errors[0].NativeError=17 then
...
end;
 
无法定位!
try
AdoTable.Open;
AdoTable.Append;
.......
AdoTable.Close;
except
On E:EDBEngineError do
begin
//这个条件根本就不会进来
end;
end;



 
如何捕捉
AdoTable.Open; AdoQuery.Open;
产生的错误原因是由于与数据库服务器的连接失败/网络失败造成的,而不是
SQL 语句,或字段不符,没有等原因造成的失败!!

谢谢!
 
顶部