独立于我设置为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。
答案 0 :(得分:1)
这很正常,因为连接成功了。
具体来说,如果数据库不存在,sqlite将创建它。仅当无法使用给定文件路径创建数据库时,连接才会失败。
如果要检查文件是否存在,请使用QFile::exists()
。