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 に答える