首页| 论坛| 消息

标题:sqlite 多线程获取同名的连接,isOpen返回false
作者:介农酥
日期:2024-09-05 15:29
内容:

不是说连接名可以跨线程吗,我主线程打开数据库的一个物理连接之后,在主线程中isOpen()返回true,辅线程返回false,难道后面的版本(我用的是Qt5.15.2)连接名又不能跨线程了。

主线程:

QString MainWindow::connectionName = "1";
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);

{
QSqlDatabase db;
if (QSqlDatabase::contains(connectionName))
{
db = QSqlDatabase::database(connectionName);
}
else
{
db = QSqlDatabase::addDatabase("QSQLITE", connectionName);
}

QString exepath = QApplication::applicationDirPath();
db.setDatabaseName(exepath+"/zhu-hai_gao-lan-gang_gree_label.db");
bool ok = db.open();
if (!ok) {
QString errStr = db.lastError().text();
qDebug()


#1 [spygg 09-06 11:50]
文档里面有说,本来就不能跨线程的啊,参见Threads and the SQL Module
#2 回 spygg 的帖子 [介农酥 09-07 06:43]
spygg:文档里面有说,本来就不能跨线程的啊,参见Threads and the SQL Module (2024-09-06 11:50) 
感谢,其实这个模块我是看到的,但是我记得以前说连接名是可以跨线程,只是对象不能。所以提问也说了这点。不过,听你这么说,我就放心了,感谢!

回复 发表
主题 版块