问题

在使用Qt连接数据库时,出现Driver not loaded报错(这里以Mariadb数据库为例Mysql同理)

指定QMYSQL情况下报错

指定QMARIADB驱动情况下报错

出现原因分析

由于Qt Sql模块使用的是驱动程序插件与不同的数据库API进行通信,当缺少当前连接的数据库驱动插件时,就会报错"Driver not loaded"

在我们进行数据库连接时,会调用QSqlDatabase的addDataBase制定连接数据库的驱动

在Qt中制定数据库驱动后,Qt会动态加载数据库驱动插件,首先是查找安装目录下的plugins\sqldrivers文件夹,我使用的是minGw32编译器,所以实际查找的目录应该是

D:\Qt\5.15.2\mingw81_32\plugins\sqldrivers

Qt查找对应文件夹中是否存在指定的驱动,一般驱动插件的存储类型也是存在一定区别:

我使用的Qt版本为Qt5.15.2,这里以QSQLITE驱动为例(因为这个sqllite数据库驱动一般会包含在库目录中,不用再手动编译),首先介绍一下不同引用库对应的驱动文件格式:

● minGw:

○ qsqllite.dll ---发布版本(Realse)的数据库驱动

○ qsqllite.dll.debug ---调试版本(Debug)的数据库驱动

● msvc:

○ qsqllite.dll ---发布版本(Realse)的数据库驱动

○ qsqllited.dll ---调试版本(Debug)的数据库驱动

这里就需要注意自己使用的编译器/引用库是哪一个,对应的编译器生成的文件格式参考上面的内容。

使用minGw64一般引用库在Qt安装目录下的C:\Qt[Qt版本]\mingw81_64\lib,编译器在C:\Qt\Tools\mingw810_64目录下

使用msvc64一般引用库在Qt安装目录下的C:\Qt[Qt版本]\msvc2019_64\lib,编译器通常安装在 Visual Studio 的目录下

解决方案

驱动编译

这里以编译Mariadb数据库驱动为例。

首先找到Qt的数据库插件编译源代码目录,我的目录为:

D:\software\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers

接下来需要明确自己的目前使用的引用库及编译器,以及需要编译的数据库驱动,因为我们需要编译的是Mysql/Mariadb数据库,所以选择D:\software\Qt\5.15.2\Src\qtbase\src\plugins\sqldrivers\mysql目录下的pro文件,并用QtCreator打开,配置项目时,选择自己项目相同的编译器,我这里选择minGw64编译器配置项目

然后修改mysql.pro文件如下图

添加的头文件搜索路径和库文件路径:

头文件路径

INCLUDEPATH += "C:/Program Files/MariaDB 10.11/include/mysql/"

库文件路径

LIBS += -L"C:/Program Files/MariaDB 10.11/lib" -lmariadb

在release下进行构建,将会在构建目录下生成三个文件(构建目录是D:\software\Qt\5.15.2\mingw81_64\qtbase\src\plugins\sqldrivers\mysql):

然后将这 三个文件拷贝至D:\software\Qt\5.15.2\mingw81_64\qtbase\src\plugins\sqldrivers\plugins\sqldrivers(对应自己使用的编译器进行选择)

接下来再进行测试连接,即可连接成功。

编译数据库驱动后,使用windeployqt打包发布版本并在安装了MariaDb/Mysql环境下仍然报错“Driver not Load"解决方法

方法1:mariaDb/Mysql安装目录下的lib目录的环境变量

方法2:每次打包程序时手动复制动态库文件libmysql.dll到exe程序同级目录中(动态库在mariaDb/Mysql安装目录下的lib目录下)

Qt | 在qcustomplot自定义图例项显示方式,实现复选框图例控制曲线可见性的更多相关文章

  1. 自定义实现 PyQt5 下拉复选框 ComboCheckBox

    一.前言 由于最近的项目需要具有复选功能,但过多的复选框会影响界面布局和美观,因而想到把 PyQt5 的下拉列表和复选框结合起来,但在 PyQt5 中并没有这样的组件供我们使用,所以想要自己实现一个下 ...

  2. PyQt(Python+Qt)学习随笔:QTreeWidgetItem项中列的复选状态访问方法

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 树型部件QTreeWidget中的QTreeWidgetItem项,项中每列数据都可以单独设置复选状 ...

  3. (原创)【B4A】一步一步入门09:xCustomListView,加强版列表、双行带图片、复选框按钮等自定义列表项(控件篇05)

    一.前言 上篇((原创)[B4A]一步一步入门08:ListView,列表.单行.双行.双行带图片.列表项样式(控件篇04))我们讲了ListView,目前官方已经不推荐再使用ListView了,而是 ...

  4. Qt之QTableView添加复选框(QAbstractItemDelegate)

    简述 上节分享了使用自定义模型QAbstractTableModel来实现复选框.下面我们来介绍另外一种方式: 自定义委托-QAbstractItemDelegate. 简述 效果 QAbstract ...

  5. 组合框里添加复选框的方法(使用勾选的假象,用图片代替而已,并非QT原生支持)

    组合框可以看作是列表框和文本框的组合,因其占据的空间少,使用操作方便,常被界面设计人员用于界面开发设计中,在有限个输入的条件下,组合框常用来代替文本框,这样从用户使用角度来看,更趋人性化,所见即所得. ...

  6. 关于QT Graphics View开启OpenGL渲染后复选框、微调框等无法正常显示的问题

    之前学习QT Graphics View框架,除了基本的图元外,还可以通过QGraphicsProxyWidget类添加QT的基本Widget(如按钮.复选框.单选框等),常使用的场景类接口如下: Q ...

  7. WPF界面设计技巧(5)—自定义列表项呈现内容

    原文:WPF界面设计技巧(5)-自定义列表项呈现内容 接续上次的程序,稍微改动一下原有样式,并添加一个数据模板,我们就可以达成下面这样的显示功能: 鼠标悬停于文件列表项上,会在工具提示中显示图像缩略图 ...

  8. 每日学习心得:SharePoint 2013 自定义列表项添加Callout菜单项、文档关注、SharePoint服务端对象模型查询

    前言: 前一段时间一直都比较忙,没有什么时间进行总结,刚好节前项目上线,同时趁着放假可以好好的对之前遇到的一些问题进行总结.主要内容有使用SharePoint服务端对象模型进行查询.为SharePoi ...

  9. Qt之QHeaderView自定义排序(获取正确的QModelIndex)

    简述 前几节中分享过关于自定义排序的功能,貌似我们之前的内容已经可以很好地解决排序问题了,但是,会由此引发一些很难发现的问题...比如:获取QModelIndex索引错误. 下面,我们先来实现一个整行 ...

  10. Qt:使用自定义的字体

    Qt:使用自定义的字体 1. 下载字体文件 2. 加载字体文件 3. 使用字体   QFontDatabase::addApplicationFont("XENOTRON.TTF" ...

随机推荐

  1. WPF 窗口 触摸失效 的一种场景

    最近,生产线反馈,在执行生产大屏测试软件的时候,软件大概率出现不能触摸,但是可以用鼠标的的情况.刚好 这个软件又是WPF 做的,所以做了以下排查. .Net 环境: .NetFrameWork 4.8 ...

  2. 通用jar包部署脚本

      在<Linux下部署Spring Boot 项目 jar包>中,小编介绍了一步一步发布jar包的方法,这里提供一个通用Shell脚本,傻瓜式发布Spring Boot项目.   通过W ...

  3. Spring 注解之@RequestBody和@PostMapping

    @RequestBody的使用   注解@RequestBody用于接收前端传递给后端的.JSON对象的字符串,这些数据位于请求体中,适合处理的数据为非Content-Type: applicatio ...

  4. Vue前端开发 转 React 指南

    JSX 先介绍 React 唯一的一个语法糖:JSX. 理解 JSX 语法并不困难,简单记住一句话,遇到 {} 符号内部解析为 JS 代码,遇到成对的 <> 符号内部解析为 HTML 代码 ...

  5. 安卓手机上部署nodejs服务器

    一.准备软件 Termux 下载地址:  链接:https://pan.baidu.com/s/1J3OQITWc34uT-Mc8B-moPA?pwd=ug9j        提取码:ug9j KSW ...

  6. php xdebug 调试

    xdebug 调试 https://www.bilibili.com/video/BV1Qx411f7pF?t=1

  7. 小车PID巡线调节

    PID巡线调节 1.双巡线P控制 KP可以先从0.2值调起,P比例主要控制小车能够在线上正常巡线, P比例说明:KP值越小,转弯幅度越大,会直接越过黑线.KP值越大,转弯幅度越小,能正常巡线,但是摆动 ...

  8. Java变量类型识别

    方法: 1.反射方式,成员变量的类型判断2.isInstance用法3.利用泛型识别类型一.新建测试类 import java.util.Date; import com.cxyapi.generic ...

  9. 什么是CAE软件?哪个CAE软件好用?

    CAE,全称Computer Aided Engineering,是指在工程领域结合计算机技术进行工程设计.分析.优化以及模拟仿真的应用.随着科技的发展,CAE技术在航空.汽车.电子.机械等领域越来越 ...

  10. MybatisPlus - CodeGenerator

    保存一下之前做系统的时候用到的生成器 先是导包 import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException; import ...