本文介绍了Delphi 的 TADOConnection 线程安全吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在编写一个 Delphi 7 应用程序,它需要从许多不同的线程同时访问同一个 SQL Server 数据库.

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

我可以使用单个共享的 TADOConnection,还是每个线程都必须创建自己的?

Can I use a single shared TADOConnection, or must each thread create their own?

推荐答案

Blorgbeard,你必须创建、初始化和打开一个单独的每个线程的 TAdoconnection 实例.

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

ADO 是一种基于 COM 的技术.它使用单元线程对象,不要忘记调用CoInitialize(nil).

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

procedure TMyThread.Execute;
begin
   CoInitialize(nil);
   try
     try
       // create a connection here
     except
     end;
   finally
     CoUnInitialize;
   end;
end;

这篇关于Delphi 的 TADOConnection 线程安全吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-07 04:57