QT×SQLite数据库的坑(1):明明第一个SQLite数据库可以跑通,为什么第二个就驱动没有加载?Driver not loaded

本文探讨了在Qt中如何处理QSqlDatabase使用SQLite时,遇到的驱动加载错误,尤其是在创建多个数据库实例时。作者提出通过自增ID为每个数据库实例指定唯一名称,以解决连接冲突问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

结论:

QSqlDatabase db;
db=QSqlDatabase::addDatabase("QSQLITE","NO.2");//第二个参数"NO.2"很重要

关于怎么使用SQLite数据库站内有相当的帖子,大家自行搜索,本回答主要解决为什么一切正常,甚至第一个数据库都跑起来了,第二个却报错驱动不加载的问题。

这是使用QSqlDatabase必须的函数

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

一般的教程,仅仅使用

QSqlDatabase db;
db=QSqlDatabase::addDatabase("QSQLITE");//没有第二个参数,即第二个参数使用默认值

关于第二个参数,以下是ChatGPT的解释:

当同一个程序中,创建了2处及以上  QSqlDatabase db;(可能是同一个父对象中,也可能是不同的父对象中)且都使用了同一个数据库驱动,如“SQLITE”。

当其中一个先被打开,且未关闭的状态下


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值