我寫這需要同時從多個不同線程訪問相同的SQL Server數據庫的Delphi 7應用程序。Delphi的TADOConnection線程安全嗎?
我可以用一個單一的共享TADOConnection,或者必須在每個線程創建自己的?
我寫這需要同時從多個不同線程訪問相同的SQL Server數據庫的Delphi 7應用程序。Delphi的TADOConnection線程安全嗎?
我可以用一個單一的共享TADOConnection,或者必須在每個線程創建自己的?
Blorgbeard,你必須創建,初始化並打開一個單獨的 TAdoconnection實例爲每個線程。
ADO是基於COM的技術。它使用公寓線程對象,不要忘記撥打 CoInitialize(nil)。
procedure TMyThread.Execute;
begin
CoInitialize(nil);
try
try
// create a connection here
except
end;
finally
CoUnInitialize;
end;
end;
不,事實並非如此。 ADO是一個基於COM的技術。它使用單元線程對象,因此您不能跨線程邊界使用ADO連接。每個線程都需要自己的連接。