Is Delphi's TADOConnection thread-safe?

后端 未结 2 715
Happy的楠姐
Happy的楠姐 2020-12-06 11:36

I\'m writing a Delphi 7 application which needs to access the same SQL Server database from many different threads simultaneously.

Can I use a single shared TADOConn

相关标签:
2条回答
  • 2020-12-06 11:53

    Blorgbeard, you must create, initialize and open a separate TAdoconnection instance for each of your threads.

    ADO is a COM-based technology. It uses apartment-threaded objects ,don't forget to call CoInitialize(nil).

    procedure TMyThread.Execute;
    begin
       CoInitialize(nil);
       try
         try
           // create a connection here
         except
         end;
       finally
         CoUnInitialize;
       end;
    end;
    
    0 讨论(0)
  • 2020-12-06 12:18

    No, it is not. ADO is a COM-based technology. It uses apartment-threaded objects, thus you cannot use ADO connections across thread boundaries. Each thread need its own connection.

    0 讨论(0)
提交回复
热议问题