SQLite测试数据库是否退出。 (QT)

时间:2012-08-01 13:30:58

标签: 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,那么我不会收到错误。我想这是有道理的,因为我实际上可以创建数据库作为proccess,ala CREATE TABLE的一部分。

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

1 个答案:

答案 0 :(得分:0)

使用sqlite3_open,不访问数据库,如果不存在,甚至可以通过后续sqlite3_调用创建。 sqlite3_open_v2有一个选项SQLITE_OPEN_READWRITE,如果数据库不存在,则会强制返回错误。