繁体   English   中英

如何在使用多线程时使用Delphi设计时FireDac TFDQuery?

[英]How to use Delphi design-time FireDac TFDQuery when using multiple threads?

我想使用组件编辑器设计我的TFDQuery ,即在设计时设置SQL字符串,选项等,然后在线程中使用查询。

我的问题是每个运行的线程实例都需要自己的查询实例 - 否则它将不是线程安全的。

我应该在线程开始运行时克隆查询,即在线程的Execute方法中,然后设置其连接 - 如果是,如何? 或者有更好的方法吗?

谢谢

文档中所述:

...在线程打开查询并且直到其处理完成之后,应用程序无法在另一个线程中使用此查询和连接对象。 类似地,在线程启动事务并且直到事务完成之后,应用程序不能在另一个线程中使用此事务和连接对象。

并且:

标准的简化是为每个线程创建和使用与数据库一起工作的专用连接对象。

因此,最简单的解决方案是为每个工作线程建立单独的连接。 如果您在同一个数据模块上使用FireDAC(连接,事务和查询)组件,那么最简单的解决方案可能是为每个工作线程创建整个数据模块的单独实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM