问题现象:

之前都是直接使用QSqlQuery的,如下代码:

QSqlDatabase db;
if(QSqlDatabase::contains("qt_sql_default_connection"))
db = QSqlDatabase::database("qt_sql_default_connection");
else
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("d:\XXXXX.db");
if(!db.open())
throw db.lastError().text();
else
{
QSqlQuery query;
query.prepare("select * from XXX");
if(!query.exec())
qDebug() << query.lastError().text();
else
return query;
}

但是有一天,突然同样的代码转到另一个工程后,发现会提示“QSqlError("", "Unable to fetch row", "No query")”。

问题原因:

我的理解是可能是没有指定联接库,可能这个库有作用范围。

如果有大神知道原因的,请联系作者,十分感谢!

问题处理:

QSqlDatabase db;
if(QSqlDatabase::contains("qt_sql_default_connection"))
db = QSqlDatabase::database("qt_sql_default_connection");
else
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("d:\XXXXX.db");
if(!db.open())
throw db.lastError().text();
else
{
QSqlQuery query(db);// 给query指定库

 

搜索

复制