在QT中创建连接以在单独的线程中使用

时间:2014-03-31 11:45:50

标签: database multithreading qt

嗯,这是一个讨论得很多的问题,但仍然不清楚: 我需要在单独的线程中使用数据库连接。当我创建这个线程时,我知道所有有效的连接参数(因为我已经有一个有效的连接)。

所以,我希望克隆这个(有效的)连接,尝试打开它,如果它确定 - 将它传递给我的线程工作者对象的构造函数,然后运行一个线程(在这种情况下我确定,我的线程将工作)。

另一种方法是 - 将连接参数传递给构造函数,并在线程运行后立即建立新连接(例如,在QThread.Started()内)。所以,我需要一种方法来通知ctrator线程失败,如果有的话。

第一种方法看起来更容易,并且工作正常,但与this statement相矛盾。所以,问题是 - 它只是一个运气,我必须遵循第二种方法, Qt文档只禁止我使用相同的连接或更多不同的线程,我的(第一)方法可以正常工作吗?

1 个答案:

答案 0 :(得分:0)

Qt并不禁止您使用来自多个线程的相同数据库连接。该限制来自数据库驱动程序。如果您想要合理安全,请仅在一个线程中打开,使用和关闭数据库连接。如果您想要更多的灵活性,您必须查看每个Qt的SQL插件及其使用的驱动程序,以找出它们对线程的个别限制。

相关问题