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

开发环境:

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 , 'smk' , 17 , 'friend', '18998416978' );" ;
 query.exec(sql);

至始,该问题完美解决。

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

你可能感兴趣的:(数据库,qt,sqlite3)