procedure TForm1.ADOConnection1Disconnect(Connection: TADOConnection; var EventStatus: TEventStatus); begin try ConnectionString :='路径'; ADOConnection1.Connected := true ; Except End; end;这样做不行吗?
通常关闭ADOConnection1; 在使用ADOConnection1的时候在打开!
在Timer里写下下面的代码就可以解决了 try while dm.ADOConn.Connected=true do begin dm.ADOConn.Connected := false; application.ProcessMessages; end; while dm.ADOConn.Connected=false do begin dm.ADOConn.Connected := true; application.ProcessMessages; end; except end;
var EventStatus: TEventStatus);
begin
try
ConnectionString :='路径';
ADOConnection1.Connected := true ;
Except
End;
end;这样做不行吗?
在使用ADOConnection1的时候在打开!
try
while dm.ADOConn.Connected=true do
begin
dm.ADOConn.Connected := false;
application.ProcessMessages;
end;
while dm.ADOConn.Connected=false do
begin
dm.ADOConn.Connected := true;
application.ProcessMessages;
end;
except
end;
如果是连接的就不用管它。
检测ADOConn.Connected是没用的,你需要检测ADOConn.Errors.Item[0].SQLState来判断是否断开。
如果是以下几个值之一,肯定被断开了。
CONNECTABORT_SQLSERVER1 = '08S0'; //连接失败的错误号(SQLSERVER) 在简体版本下,显示不出最后一位
CONNECTABORT_SQLSERVER2 = '08S01'; //连接失败的错误号(SQLSERVER)
CONNECTFAULT_SQLSERVER = '08001'; //连接不上服务器的的错误号(SQLSERVER)