您的位置:首页 > 编程语言 > Qt开发

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

2014-02-25 16:30 549 查看
开发环境:
Qt Creator 2.8.1Based 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 , 'smk' , 17 , 'friend', '18998416978' );" ;
query.exec(sql);
至始,该问题完美解决。
ps:这个问题我也在网上搜过,网上的解决方法只是解决了一开始的问题,后面打不开数据库却在我的机子弄不了。
本文出自 “sengmitnick” 博客,请务必保留此出处http://smk17.blog.51cto.com/8608685/1363382
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: