Является ли TADOConnection от Delphi поточно-ориентированным?
Я пишу приложение Delphi 7, которому требуется одновременный доступ к одной и той же базе данных SQL Server из разных потоков.
Могу ли я использовать один общий TADOConnection или каждый поток должен создать свой собственный?
2 ответа
Решение
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 через границы потоков. Каждому потоку нужно свое собственное соединение.