Является ли 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 через границы потоков. Каждому потоку нужно свое собственное соединение.

Другие вопросы по тегам