我想在尝试之前检查一下。我正在研究一些线程,这些线程需要从线程中的数据库中获取数据。目前,基于我所见过的,我正在从线程内创建一个新的数据库连接(TADOConnection)。一切正常,除非我能从线程外的某个地方获取连接对象,这将是很好的。基本上,我不想为每个线程执行继续创建新的TADOConnection。
是否可以在线程外部发布TADOConnection属性(因此在创建线程时分配它)然后在线程中使用该连接?我需要做的就是在线程中创建TADODataSet并将其连接分配给此TADOConnection。我对此有点不确定,特别是因为在线程中使用ADO时我需要调用CoInitialize和CoUninitialize。
答案 0 :(得分:1)
答案似乎没有。因为TADOConnection
(和其他ADO组件)是基于COM的,所以它们不能跨线程传递。所以在这种情况下,我别无选择,只能在每个线程中创建一个新的TADOConnection
。每次循环时,继续运行的线程都会使用此连接,但单次运行的线程只使用它一次。