1

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

例如:

如果我运行以下代码:

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

db.setDatabaseName("");

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

打开函数返回真。

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

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

Qt 5.5 QSqlDatabase::open() 总是返回 true?

QSqlDatabase::open() 总是返回 true

QSqlDatabase open 更新后总是返回true

我正在使用 SQLite 和 Qt 5.3.2。

4

1 回答 1

2

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

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

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

于 2016-12-12T21:23:08.553 回答