0

我在使用 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,那么我不会收到错误消息。我想这是有道理的,因为我实际上可以将数据库创建为过程的一部分,也就是 CREATE TABLE。

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

4

1 回答 1

0

不访问数据库,如果它不存在sqlite3_open,甚至可能由后续调用创建。如果数据库不存在,则有一个选项强制返回sqlite3_错误sqlite3_open_v2SQLITE_OPEN_READWRITE

于 2012-08-01T13:39:18.307 回答