0

SQLite を使用して Qt アプリケーションにこの小さなコード スニペットがあります。

  db.setDatabaseName("./good.db");
  if(!db.open())
    {
      QMessageBox m(QMessageBox::Critical,"Connection Error",db.lastError().text() );
      m.exec();
      exit(0);
    }

問題は、good.db を bad.db のような存在しないファイルに置き換えても、エラーが発生しないことです。CREATE TABLE というプロセスの一部として実際にデータベースを作成できるので、これにはある程度の意味があると思います。

ファイルの存在を簡単にテストできますが、それは私には下品なアプローチに思えます。(Qt および libsqlite から) データベースの存在をテストする方法はありますか?

4

1 に答える 1

0

sqlite3_openデータベースはアクセスされsqlite3_ず、存在しない場合は後続の呼び出しによって作成されることさえあります。には、データベースが存在しない場合に強制的にエラーを返すsqlite3_open_v2オプションがあります。SQLITE_OPEN_READWRITE

于 2012-08-01T13:39:18.307 に答える