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 TADOConnection, or must each thread create their own?
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;
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With