QSqlDatabase::open() 总是 returns 真 Qt 5.3.2

QSqlDatabase::open() always returns true Qt 5.3.2

独立于我为 setDatabaseName 函数设置的参数,open 函数始终 returns 为真。这正常吗?

例如:

如果我运行下面的代码:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");

db.setDatabaseName("");

if( db.open() )
{
    qDebug() << "open";
}

打开函数returns true.

我期望的是 open 函数只有在成功连接到数据库时 returns 才为真。

我已经找到了一些主题,但是 none 解决了我的问题:

我正在使用 SQLite 和 Qt 5.3.2。

正常,因为你连接成功了

具体来说,如果数据库不存在,sqlite 将创建它。仅当无法使用给定文件路径创建数据库时,连接才会失败。

如果要检查文件是否存在,请使用QFile::exists()