Qt添加驱动——Qt数据库之添加MySQL驱动插件
Qt数据库之添加MySQL驱动插件(1)
现在可用的数据库驱动只有3种,在Qt中,我们需要自己编译其他数据库驱动的代码,让它们以插件的形式来使用。下面我们就以现在比较流行的MySQL数据库为例,说明一下怎样在Qt Creator中添加数据库驱动插件。在讲述之前,我们先看一下Qt Creator中数据库的插件到底放在哪里。
我们进入Qt Creator的安装目录,然后进入相对应的文件夹下,比方我这里是
- D:Qt2010.02.1qtpluginssqldrivers
在这里我们可以看见几个文件,如下图:

<根据名字中的关键字,我们可以判断出这就是ODBC数据库和SQLite数据库的驱动插件。下面我们编译好MySQL数据库驱动后,也会在这里出现相对应的文件。
首先:我们查看怎样安装数据库插件。
我们打开Qt Creator,在帮助中搜索SQL Database Drivers关键字。这里列出了编译Qt支持的所有数据库的驱动的方法。
我们下拉到在windows上编译QMYSQL数据库插件的部分,其内容如下:

这里详细介绍了整个编译的过程,其可以分为以下几步:
第一,下载MySQL的安装程序,在安装时选择定制安装,这时选中安装Libs和Include文件。安装位置可以是C:MySQL 。
注意:安装位置不建议改动,因为下面进行编译的命令中使用了安装路径,如果改动,那么下面也要进行相应改动。
第二,进行编译。我们按照实际情况输入的命令如下。
- cd%QTDIR%srcpluginssqldriversmysql
- qmake“INCLUDEPATH+=C:MySQLinclude”“LIBS+=C:MySQLliboptlibmysql.lib”mysql.pro
- mingw32-make
注意:在上面的命令中qmake之后如果加上“-o Makefile”选项,那么这个插件只能在以release模式编译程序时才能使用,所以我们上面没有加这个选项。
然后:我们按照上面的过程进行相应操作。
1.我们先下载MySQL的安装文件。
我们可以到MySQL的官方主页 http://www.mysql.com 进行下载最新的MySQL的windows版本,现在具体的下载页面地址为:
http://www.mysql.com/downloads/mirror.php?id=383405#mirrors
我们不进行注册,直接点击其下面的
- Nothanks,justtakemetothedownloads!
可以在其中选择一个镜像网点进行下载,我使用的是Asia下的最后一个,就是台湾的镜像网点下载的。
下载到的文件名为:mysql-essential-5.1.44-win32 ,其中的win32表明是32位的windows系统,这一点一定要注意。文件大小为40M左右。
当然你也可以到中文网站上进行下载:http://www.mysql.cn/,随便下一个windows的版本就行。
2.安装软件。
我们选择定制安装Custom。

然后选中安装Include文件和Lib文件。

我们将安装路径更改为:C:MySQL 。

最终的界面如下。

安装完成后,我们不进行任何操作,所以将两个选项都取消。

3.进行编译。
我们在桌面上开始菜单中找到Qt Creator的菜单,然后打开Qt Command Prompt。

然后输入第一条命令cd %QTDIR%srcpluginssqldriversmysql 后按回车,运行效果如下。

然后输入第二条命令:
- qmake“INCLUDEPATH+=C:MySQLinclude”“LIBS+=C:MySQLliboptlibmysql.lib”mysql.pro
按回车后运行效果如下:

最后输入:mingw32-make ,按下回车后经过几秒的编译,最终效果如下:

整个编译过程中都没有出现错误提示,可以肯定插件已经编译完成了。
4.我们再次进入Qt Creator安装目录下存放数据库驱动插件的文件夹。
我这里是D:Qt2010.02.1qtpluginssqldrivers
其内容如下:

可以看到已经有了和MySQL相关的文件了。
最后:我们编写程序测试插件。
1.我们将上一次的主函数更改如下。
- intmain(intargc,char*argv[])
- {
- QCoreApplicationa(argc,argv);
- QSqlDatabasedb=QSqlDatabase::addDatabase(“QMYSQL”);//添加数据库驱动
- returna.exec();
- }
运行程序,效果如下。

这里提示:QSqlDatabase: QMYSQL driver not loaded 。
2.这时我们需要将C:MySQLbin目录下的libmySQL.dll文件复制到我们Qt Creator安装目录下的qtbin目录中。
如下图:

3.这时再运行程序,就没有提示了。

4.我们再将主函数更改一下,测试这时可用的数据库驱动。
- intmain(intargc,char*argv[])
- {
- QCoreApplicationa(argc,argv);
- qDebug()<<“Availabledrivers:”;
- QStringListdrivers=QSqlDatabase::drivers();
- foreach(QStringdriver,drivers)
- qDebug()<<“t”<<driver;
- returna.exec();
- }
运行效果如下:

可以看到,现在已经有了MySQL的数据库驱动了。
转自:https://blog.csdn.net/dsg333/article/details/9628807
Qt添加驱动——Qt数据库之添加MySQL驱动插件的更多相关文章
- Django学习路11_向数据库中添加 和 获取指定条件数据
在 views.py 中添加函数 向数据库中添加数据 def add_persons(request): for i in range(15): person = Person() flag = ra ...
- EA逆向生成数据库E-R图(mysql数据库-->ER图)
[1]选择 工具-->ODBC-Data-Sources [2]ODBC数据源管理器 ,点击添加 [3]选择一个mysql驱动 ,点击MySQL ODBC 5.1 Driver(其它同理), ...
- 校园商铺-2项目设计和框架搭建-8升级mysql驱动相关的配置以支持mysql8
1.如何升级驱动 1.1步骤: a 确保当前程序能正常访问数据库 b 更新mysql驱动重新运行程序进行校验 maven依赖https://mvnrepository.com/artifact/mys ...
- 五十九 数据库访问 使用MySQL
MySQL是Web世界中使用最广泛的数据库服务器.SQLite的特点是轻量级.可嵌入,但不能承受高并发访问,适合桌面和移动应用.而MySQL是为服务器端设计的数据库,能承受高并发访问,同时占用的内存也 ...
- [数据库系列之MySQL] Mysql整体架构浅析一
一.引言 平时我们在做Java系统时,一般情况下都会连接到一个MySQL数据库上去,执行各种增删改查的语句.大部分的Java工程师对MySQL的了解和掌握程度,大致就停留在这么一个阶段:对MySQL可 ...
- Qt 5.2中编译加载MySQL数据库驱动问题的总结
背景: 本科毕业设计涉及图形界面与数据库查询.选择使用Qt实现图形界面编程,使用MySQL构建数据库.之前安装了Qt 5.2,后来又安装了MySQL Server 5.6 (FULL完全安装).接着就 ...
- qt mysql驱动问题解绝
传统解决方法:一.解决问题 本文解决在Ubuntu16.04系统下,Qt5无法连接MySQL数据库的问题(Qt5缺少MySQL驱动,Qt5缺少libqsqlmysql.so动态库,如何安装libqsq ...
- QT使用MySql的配置(使用addLibraryPath载入插件),编译QT的MySql驱动问题及解决方案(自己使用libmysql.lib进行编译mysql.pro,万不得已可以查看Makefile.Debug以解决问题)
2010/04/23:Fixes : 更新批处理,以兼容WIN7. 第一次系统地玩QT,于是诞生了此预备式: [QT版本4.6.0(VS2008编译版),开发平台推荐使用Qt Creator(最新1. ...
- QT编译mysql驱动
一. 下载mysql C链接库 地址:http://dev.mysql.com/downloads/ 根据当前系统选择下载: 二. 安装下载好的mysql驱动文件 注意,一定要安装在不含有中文.空格以 ...
随机推荐
- Wireshark数据抓包分析——网络协议篇
Wireshark数据抓包分析--网络协议篇 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZGF4dWViYQ==/ ...
- 关于的 recorder robotium 的Eclipse插件(URL:http://recorder.robotium.com/updates/或者说不可用)
最近在学robotium.看到别人说robotium的Eclipse的插件非常好用. 打算安装时.发现死活都无法连接http://recorder.robotium.com/updates/ 过程是 ...
- [100]shell中exec解析
参考:<linux命令.编辑器与shell编程> <unix环境高级编程> 本地变量可以理解为局部变量,参考:shell基础 参考 bash shell的命令分为两类:外部命令 ...
- android 中毛玻璃效果的实现
最近在做一款叫叽叽的App(男银懂的),其中有一个功能需要对图片处理实现毛玻璃的特效 进过一番预研,找到了3中实现方案,其中各有优缺点: 1.如果系统的api在16以上,可以使用系统提供的方法直接处理 ...
- Checkbox: ListView 与CheckBox 触发事件冲突的问题
我相信很多人都遇到过 ListView 中放入checkBox ,会导致ListView的OnItemClickListener无效,这是怎么回事呢? 这是因为checkBox 的点击事件的优先级比L ...
- 从tableview中拖动某个精灵
virtual void registerWithTouchDispatcher(void); virtual bool ccTouchBegan(CCTouch *pTouch,CCEvent *p ...
- 【Linux技术】BusyBox详解
BusyBox 是很多标准 Linux® 工具的一个单个可执行实现.BusyBox 包含了一些简单的工具,例如 cat 和 echo,还包含了一些更大.更复杂的工具,例如 grep.find.moun ...
- keepalived+nginx双机热备+负载均衡
Reference: http://blog.csdn.net/e421083458/article/details/30092795 keepalived+nginx双机热备+负载均衡 最近因业务扩 ...
- postgresql 修改字段名称
ALTER TABLE auth_user RENAME email TO aemail;
- 5. EM算法-高斯混合模型GMM+Lasso
1. EM算法-数学基础 2. EM算法-原理详解 3. EM算法-高斯混合模型GMM 4. EM算法-GMM代码实现 5. EM算法-高斯混合模型+Lasso 1. 前言 前面几篇博文对EM算法和G ...