首页| 论坛| 消息

标题:Qt多线程访问数据库的错误
作者:uidab
日期:2016-01-25 10:12
内容:

错误提示
QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.
QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.
Segmentation fault
几经查找发现是多线程访问MYSQL的问题,不知道有遇到的这个问题的人吗?
主要是数据库有多(三)个,每个有多个表。因为需要是从不同线程访问。


#1 [link8001 01-25 11:20]
if(QSqlDatabase::contains("qt_sql_default_connection"))
{
db = QSqlDatabase::database("qt_sql_default_connection");
}
else
{
db = QSqlDatabase::addDatabase("QSQLITE");
}
QSQLITE驱动改成MYSQL即可
#2 回 link8001 的帖子 [uidab 01-25 12:25]
link8001:    if(QSqlDatabase::contains("qt_sql_default_connection"))
    {
        db = QSqlDatabase::database("qt_sql_default_connection");
    }
&n .. (2016-01-25 11:20) 
不行啊。
#3 [uidab 01-25 13:44]
QMYSQLResult::cleanup: unable to free statement handle
Segmentation fault
有时候是这个错误,然后程序崩掉
#4 [XChinux 01-25 20:56]
不可跨线程使用田一个QSqlDatabase对象连接。
#5 回 XChinux 的帖子 [uidab 01-26 08:41]
XChinux:不可跨线程使用田一个QSqlDatabase对象连接。 (2016-01-25 20:56) 
嗯,错误原因就是这个,正在改,主要是项目用了很多次调用。一切参数都写到数据库里了。

<< 1 2 3 >> (1/4)

回复 发表
主题 版块