SQLite测试数据库是否存在。(Qt)

SQLite测试数据库是否存在。(Qt),qt,sqlite,Qt,Sqlite,我在使用SQLite的Qt应用程序中有以下代码片段: db.setDatabaseName("./good.db"); if(!db.open()) { QMessageBox m(QMessageBox::Critical,"Connection Error",db.lastError().text() ); m.exec(); exit(0); } 问题是,如果我用一个不存在的文件(如bad.db)替换good.db,那么就不会出

我在使用SQLite的Qt应用程序中有以下代码片段:

  db.setDatabaseName("./good.db");
  if(!db.open())
    {
      QMessageBox m(QMessageBox::Critical,"Connection Error",db.lastError().text() );
      m.exec();
      exit(0);
    }
问题是,如果我用一个不存在的文件(如bad.db)替换good.db,那么就不会出现错误。我想这是有道理的,因为我实际上可以在创建表的过程中创建数据库


我可以简单地测试文件的存在性,但对我来说这似乎是一种粗俗的方法。是否有任何方法(从Qt和libsqlite)来测试数据库的存在性?

使用
sqlite3\u open
不会访问数据库,如果数据库不存在,甚至可以通过后续的
sqlite3\u
调用来创建数据库。
sqlite3\u open\u v2
有一个选项
SQLITE\u open\u READWRITE
,如果数据库不存在,则强制返回错误