0
   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")

这让我感到困惑,因为当我用命令行检查数据库时,它确实存在并且拼写正确。我唯一能想到的是它正在连接到不同的数据库文件?

4

1 回答 1

0

问题已解决:我将项目和调试文件夹移动到不同的路径,并且没有将 IDE 指向新文件夹,因此它一直引用旧的调试文件夹。一旦我将它指向正确的路径,它就可以正常工作。只有当我说查看@redmode 建议的路径时,我才发现错误。干杯所有GC

于 2012-11-12T10:13:25.070 回答