通過LisDataBaseConnected是true還是false來判斷當前資料庫連接是否正常。不正常的時候,先重連。
做過嘗試,重連時連上了,但是老的資料庫連接沒釋放,這要是頻繁斷網,資料庫連接數得頂到天上去了。
function LisDataBaseConnect(): string;
begin
try
try
ADOCXHLis := TADOConnection.Create(nil);
ADOCXHLis.LoginPrompt := false;
ADOCXHLis.ConnectionString := 'File name=.\XHLis.udl';
ADOCXHLis.open;
LisDataBaseConnected := true;
except
on E: Exception do
begin
LisDataBaseConnected := false;
end;
end;
finally
end;
end;
function testselect(Data: string): string;
var
QTest: TADOQuery;
begin
if not LisDataBaseConnected then
begin
ADOCXHLis.Close;
LisDataBaseConnect();
end;
try
try
QTest := TADOQuery.Create(nil);
QTest.Connection := ADOCXHLis;
QTest.Close;
QTest.SQL.Clear;
QTest.SQL.Add('SELECT his_id FROM lis_base_data where base_data_id =' + QuotedStr(Data));
QTest.Open;
if not QTest.IsEmpty then
begin
if not QTest.FieldByName('his_id').IsNull then
begin
result := QTest.FieldByName('his_id').AsString;
end
else
Result := '0';
end
else
result := '無結果';
except
on E: Exception do
begin
LisDataBaseConnected := false;
ADOCXHLis.Close;
Result := E.Message;
end;
end;
finally
QTest.Close;
QTest.Free;
end;
end;
uj5u.com熱心網友回復:
1. 設定一下超時時間:ADOConnection1.ConnectionTimeout := 5; // 5秒2. 檢測TADOConnection.State
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/35984.html
標籤:數據庫相關
