QT查询SQLite数据库

时间:2013-11-15 22:54:18

标签: c++ qt sqlite

当我们输入

时,在我们的sql lite终端中
SELECT * FROM Measures

我们从数据库中的measure OMBI.db获取所有内容。

但现在我们想通过QT C ++ GUI开发平台连接数据库。为此,我们使用以下代码:

db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("/Desktop/project/src/OMBI.db");
bool db_ok = db.open();

qDebug() << db_ok;

QSqlQuery query;
//query.exec("SELECT * FROM Measures");
if(query.exec("SELECT * FROM Measures")){
    while(query.next()){
        qDebug() << query.value(0).toInt();
    }
    qDebug() << query.lastError().text();
    qDebug() << "Inside First if Statement";
}
else
{
    qDebug() << query.lastError().text();
}

请注意,GUI项目的所有核心代码都放在desktop/project/src下,我们还在其中放置了OMBI.db数据库文件。

从其他问题我们得知,如果我们成功打开数据库,行qDebug() << db_ok;将返回true。认为它已经返回真实,我们认为我们的问题将在我们查询的if语句中。但我们发现,无论我们设置db.setDatabaseName("");,它都将返回true。我们的问题可能是什么?我确信我们没有正确读取数据库,因为如果我们输入db.setDatabaseName("non_existent_random_file");,我们仍然可以实现。

编辑:

我们在查询时也会遇到以下错误:

"no such table: Measures Unable to execute statement" 

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

如果数据库不存在,它将创建数据库。可能你的道路是错的。你不应该有db.setDabaseName(“/ home / userName / Desktop /.....)?