많은 다른 스레드에서 동일한 SQL Server 데이터베이스에 동시에 액세스해야하는 Delphi 7 응용 프로그램을 작성하고 있습니다.Delphi의 TADOConnection은 스레드로부터 안전한가요?
하나의 공유 TADOConnection을 사용할 수 있습니까? 아니면 각 스레드가 고유 한 TADOConnection을 만들어야합니까?
많은 다른 스레드에서 동일한 SQL Server 데이터베이스에 동시에 액세스해야하는 Delphi 7 응용 프로그램을 작성하고 있습니다.Delphi의 TADOConnection은 스레드로부터 안전한가요?
하나의 공유 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 연결을 사용할 수 없습니다. 각 스레드는 자체 연결이 필요합니다.