QSqlDatabase :: open()始终返回true Qt 5.3.2

时间:2016-12-12 20:28:00

标签: c++ qt sqlite qsqldatabase

独立于我设置为setDatabaseName函数的参数,open函数始终返回true。这是正常的吗?

例如:

如果我运行以下代码:

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

db.setDatabaseName("");

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

open函数返回true。

我期望open函数只有在成功连接到数据库时才返回true。

我已经找到了一些主题但没有解决我的问题:

Qt 5.5 QSqlDatabase::open() always returns true?

QSqlDatabase::open() always returns true

QSqlDatabase open always returns true after update

我正在使用SQLite和Qt 5.3.2。

1 个答案:

答案 0 :(得分:1)

这很正常,因为连接成功了。

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

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