Qt-Qt在使用QSqlQuery时提示 QSqlError("", "Unable to fetch row", "No query")?

问题现象:

之前都是直接使用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指定库
    query.prepare("select * from XXX");
    if(!query.exec())
        qDebug() << query.lastError().text();
    else
        return query;
}

 

posted on 2022-09-17 10:16  疯狂delphi  阅读(1072)  评论(0编辑  收藏  举报

导航