Qt-qsqquery。exec()是同步的还是异步的?

Qt-qsqquery。exec()是同步的还是异步的?,qt,firebird,Qt,Firebird,我正在使用firebird嵌入式数据库和Qt提供程序。 为了使用db,我使用qsqlquery::exec()函数。 此函数是同步的还是异步的?QSqlQuery::exec()是阻塞的(同步的),但不是原子的,操作系统可以中断线程并在线程之间运行另一个线程 请注意,无论如何,您都不应该跨线程共享单个数据库连接,因此不会出现问题。谢谢。是的,我正在跨2个线程(gui和工作线程)使用db,我从firebird那里收到了奇怪的错误:“死锁-死锁-更新与并发更新冲突-并发事务号是1323。”我在一个工

我正在使用firebird嵌入式数据库和Qt提供程序。 为了使用db,我使用qsqlquery::exec()函数。 此函数是同步的还是异步的?

QSqlQuery::exec()
是阻塞的(同步的),但不是原子的,操作系统可以中断线程并在线程之间运行另一个线程


请注意,无论如何,您都不应该跨线程共享单个数据库连接,因此不会出现问题。

谢谢。是的,我正在跨2个线程(gui和工作线程)使用db,我从firebird那里收到了奇怪的错误:“死锁-死锁-更新与并发更新冲突-并发事务号是1323。”我在一个工作线程中创建了一个新连接(gui连接仍处于活动状态,但未使用),同时“死锁…”出现错误。有什么问题?您能帮忙吗?另外:我是否应该为所有查询调用qsqlquery::finish()函数(对于经常使用的局部变量或类成员)?您能标记并关闭此问题,然后打开新问题并附加部分代码吗?