bool isOpen = database.open();
QSqlQuery query(database);
qDebug("is the database open %d",isOpen);
bool result = query.exec("SELECT * FROM scales");
数据库是一个全局变量,它以另一种方法启动:
database = QSqlDatabase::addDatabase("QSQLITE", "first");
database.setDatabaseName("database.db");
bool result = database.open();
在这两种情况下,数据库都在打开(返回 true),但是当我运行查询时,它返回 false。我在终端中运行了相同的 SQL,它可以工作,所以 SQL 应该没有任何问题。那么为什么查询没有执行呢?
打印 lastError 后我得到 QSqlError(1, "Unable to execute statement", "no such table: scales")
这让我感到困惑,因为当我用命令行检查数据库时,它确实存在并且拼写正确。我唯一能想到的是它正在连接到不同的数据库文件?