【发布时间】:2017-09-27 15:17:24
【问题描述】:
您能否在连接/执行的线程以外的线程上询问 QSqlQuery(例如 query.value)?
【问题讨论】:
-
你试过了吗?试试看,告诉我们您的体验。
-
我没试过,但我想试试。代码是多线程的,它可能需要一些时间才能随机崩溃,我更好奇 QSqlQuery 架构是否支持它
标签: c++ multithreading qt qsqlquery
您能否在连接/执行的线程以外的线程上询问 QSqlQuery(例如 query.value)?
【问题讨论】:
标签: c++ multithreading qt qsqlquery
根据Qt docs,这是不支持的:
只能在创建它的线程中使用连接。 在线程之间移动连接或从 不支持不同的线程。
另外,QSqlDrivers 使用的第三方库可以 对在多线程中使用 SQL 模块施加进一步的限制 程序。有关更多信息,请参阅数据库客户端的手册 信息
因此,您至少必须为要从中运行查询的每个线程add a new database connection(具有唯一名称)。
【讨论】:
QSqlQuery 对象?你想通过这样做解决什么问题?您是否希望以某种方式避免将所有结果发送回主线程?