QT c++ 同时使用sqlite 和mysql数据库的问题

在项目开发中,同时使用了sqlite 和mysql数据库,分开这两部分运行功能都正常,但是一起运行,就异常,sqlite部分不能使用。

现象:出现如下提示

QSqlDatabasePrivate::addDatabase: duplicate connection name 'qt_sql_default_connection', old connection removed.

解决办法,addDatabase函数时候指定数据库类型和连接名称。

原因:如果不指定连接名称,则是默认连接'qt_sql_default_connection',那么两种数据库用

一个连接引起错乱。

The connection in the snippet will be the default connection, because we don't pass the second argument to addDatabase(), which is the connection name. For example, here we establish two MySQL database connections named "first" and "second":

原型:

static QSqlDatabase QSqlDatabase::addDatabase(const QString &type, const QString &connectionName = QLatin1String(defaultConnection))

//-------------以下是截取的代码-------------------

//---第1部分,DB是长连接

//...

DB = QSqlDatabase::addDatabase("QSQLITE","SQLiteConnection1");

//...

///---第2部分,db是短连接

//...

// if(QSqlDatabase::contains("MySQLConnection1"))//为避免重复,先移除掉

// QSqlDatabase::removeDatabase("MySQLConnection1");//

QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL", "MySQLConnection1");

//...

db.close();

//...

相关推荐
l1t8 小时前
duckdb 1.6dev新增的.manual命令
开发语言·数据库
辉灰笔记9 小时前
第一篇:MySQL8.0生产备份实战|XtraBackup全自动全量+增量备份(钉钉告警+异地Binlog归档)
数据库·mysql·钉钉·运维开发
山峰哥9 小时前
‌Explain实战:打开数据库执行计划的黑盒‌
大数据·服务器·数据库·sql·深度优先·宽度优先
wzy06239 小时前
VIP + Orchestrator + 自定义脚本 MySQL 高可用方案
mysql·orchestrator
ClickHouseDB10 小时前
ClickHouse 26.6 版本发布说明
数据库
Wang's Blog10 小时前
Java框架快速入门:深入MyBatis-Plus高级DML操作(ID策略·逻辑删除·乐观锁)
java·数据库·mybatis
小二·21 小时前
RAG + 向量数据库实战:ChromaDB / Milvus / FAISS 选型与性能横评
数据库·milvus·faiss
矜持的左手21 小时前
电子小白的枕边书:电子学(The Art of Electronics)
数据库·restful
吴声子夜歌21 小时前
Redis 5.x——布隆过滤器
数据库·redis·缓存