关于qt中QSqlDatabase使用:如果使用单一的数据库,以sqlite为例:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
QString dbFileName = "xxx.db";
db.setDatabaseName(dbFileName );
if (db.isOpen()) {
db.open();
}
... //db operator
但是当一个程序中需要使用两个数据库(比如软件更新时拷贝原先数据库中的内容等),则需要操作两个数据库,如果只是相似地使用:
QSqlDatabase db1 = QSqlDatabase::addDatabase("QSQLITE");
QString dbFileName1 = "xxx.db";
db1.setDatabaseName(dbFileName1);
if (db1.isOpen()) {
db1.open();
}
... //db operator
此时往往会出现以下警告,导致数据库执行失败:
这篇博客探讨了在Qt环境中如何使用QSqlDatabase管理多个数据库连接,特别是在需要同时操作两个数据库的情况下。通过源码分析,解释了QSqlDatabase::addDatabase函数的工作原理,特别是默认连接名'qt_sql_default_connection'的重要性。博主指出,数据库名称实际上是数据库连接的标识,而setDatabaseName用于设置数据库文件路径。此外,当尝试添加已存在的默认连接时,Qt会关闭原有连接并给出警告。最后,博主提到open()方法会创建数据库文件,即使文件不存在也不会抛出错误。
最低0.47元/天 解锁文章
8581

被折叠的 条评论
为什么被折叠?



