执行取数据前,if not adoconnection1.open then adoconnecttion1.open;
if not ADOConnection1.Connected then ADOConnection1.Open; ADOConnection1.BeginTrans; try ADOConnection1.CommitTrans; except ADOConnection1.RollbackTrans; end;
如果没有必要一直连线,那就在需要操作的时候,连接。如果一定要一直连接。。在ping之后Connection Close and Open,或者在 try
except end; 中尝试操作,如果不能成功再执行Connection Close and Open
procedure TMainForm.QueryExec(mTempQuery:TADOQuery); var mError: boolean; begin while 0=0 do begin mError := False; try mTempQuery.ExecSQL; except mError := True; end; if mError then begin try mTempQuery.Connection.Connected := False; mTempQuery.Connection.Connected := True; except end; end else break; end; end;有结果集返回的mTempQuery这样用: mTempQuery.SQL.Text := '..........'; ExecQuery(mTempQuery); mTempQuery.Active := True;无结果集返回的mTempQuery这样用: mTempQuery.SQL.Text := '.........'; ExecQuery(mTempQuery);这段原创代码我在很多程序中用的,非常好用,多种断网情况都能自动恢复。
TO: erhan ............. if mError then begin try mTempQuery.Connection.Connected := False; mTempQuery.Connection.Connected := True;//如果你把这句注释掉,代码就会更优一些.呵呵. except end; end
ADOConnection1.Open;
ADOConnection1.BeginTrans;
try
ADOConnection1.CommitTrans;
except
ADOConnection1.RollbackTrans;
end;
try
except
end;
中尝试操作,如果不能成功再执行Connection Close and Open
var
mError: boolean;
begin
while 0=0 do
begin
mError := False;
try
mTempQuery.ExecSQL;
except
mError := True;
end;
if mError then
begin
try
mTempQuery.Connection.Connected := False;
mTempQuery.Connection.Connected := True;
except
end;
end
else
break;
end;
end;有结果集返回的mTempQuery这样用:
mTempQuery.SQL.Text := '..........';
ExecQuery(mTempQuery);
mTempQuery.Active := True;无结果集返回的mTempQuery这样用:
mTempQuery.SQL.Text := '.........';
ExecQuery(mTempQuery);这段原创代码我在很多程序中用的,非常好用,多种断网情况都能自动恢复。
.............
if mError then
begin
try
mTempQuery.Connection.Connected := False;
mTempQuery.Connection.Connected := True;//如果你把这句注释掉,代码就会更优一些.呵呵.
except
end;
end