加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Qt下使用QtSql连接sqlite3所遇到的问题总结

发布时间:2020-12-12 20:06:15 所属栏目:百科 来源:网络整理
导读:开发环境: Qt Creator 2.8.1 Based on Qt 5.0.2 (GCC 4.8.2,32 bit) 问题1:编译无错误,在执行时终端出现以下字母: QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection',old connection removed. 问题所在代码段:

开发环境:

Qt Creator 2.8.1

Based on Qt 5.0.2 (GCC 4.8.2,32 bit)



问题1:编译无错误,在执行时终端出现以下字母:

QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection',old connection removed.

问题所在代码段:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");

解决方法:

把问题所在代码段改为以下代码:

QSqlDatabase db;
    if(QSqlDatabase::contains("GBond"))
        db = QSqlDatabase::database("GBond");
    else
        db = QSqlDatabase::addDatabase("QSQLITE","GBond");

这样一来,以上问题就解决了。

不过,再次执行时终端出现以下字母:

QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open
QSqlQuery::exec: database not open

问题所在代码段:

QSqlQuery query;
QString sql = "INSERT INTO contact VALUES(1,'smk',17,'friend','18998416978' );" ;
 query.exec(sql);

解决方法:

把问题所在代码段改为以下代码:

QSqlQuery query(db);
QString sql = "INSERT INTO contact VALUES(1,'18998416978' );" ;
 query.exec(sql);

至始,该问题完美解决。

ps:这个问题我也在网上搜过,网上的解决方法只是解决了一开始的问题,后面打不开数据库却在我的机子弄不了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读