1.首先当然是要有VS2008+Qt4.7的开发环境。

2.安装MySQL,最好是4以后的版本,安装MySQL时要勾住“C Include Files 和 Lib Files”选项,这样才能装上MySQL的头文件和链接库。(或者选择FULL安装)

3.由于MySQL先天的路径问题(就是它的路径里面有空格),我们需要把它的include和lib目录复制出来,放在一个没有空格的目录下。

在C盘建立Mysql5.5文件夹,把include和lib放进去。

4. 打开Qt Command Prompt 窗口,输入命令:

cd  C:\Qt\4.7.4\src\plugins\sqldrivers\mysql\

5. 输入命令:

qmake -o "INCLUDEPATH+=C:\Mysql5.5\include" "LIBS+=C:\Mysql5.5\libmysql.lib" mysql.pro

这里面的路径就是第3步里面创建的目录

6.输入命令: nmake release debug

到这里,其实MySQL的驱动已经编译完了,但是可能编译出来的动态链接库没有自动拷贝到C:\Qt\4.7.4\plugins\sqldrivers 中去。没关系,我们手动拷贝如下:

【拷贝1】将编译生成的mysql驱动

C:\Qt\4.7.4\src\plugins\sqldrivers\mysql\release和

C:\Qt\4.7.4\src\plugins\sqldrivers\mysql\release\debug   里面把qsqlmysql4.dll、qsqlmysql4.lib、qsqlmysqld4.dll、qsqlmysqld4.lib拷到 c:\Qt\4.7.4\plugins\sqldrivers 里面就行了。

【拷贝2】将libmysql.dll拷贝到C:\Qt\4.7.4\bin。

下面可以进行Qt数据库的测试例子了:

int main(int argc, char *argv[])

{

QApplication app(argc, argv);

qt_mysql w;

QTextCodec::setCodecForTr(QTextCodec::codecForName("gbk")); //设置tr()编码。

QSqlQueryModel *model;

QTableView *table=new QTableView;

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

db.setHostName("10.3.2.84");   //数据库服务器

db.setDatabaseName("petct");   //数据库名

db.setUserName("admin");      //登录名

db.setPassword("admin");    //密码

if(db.open())

{

QSqlQuery query;

query.exec("update patient_basic_info set sex ='m 'where patient_id = 3");

query.exec("DELETE FROM patient_basic_info where patient_id = 3");

query.exec("SELECT patient_id , patient_name,ID_card_no,sex FROM patient_basic_info");//name为属性名;

query.next();

QString name = query.value(1).toString();                                                                                 w.ui.patient_name_text->setText(name);

model=new QSqlQueryModel;

model->setQuery(query);

table->setModel(model);

}

else

{

// 数据库打开失败,显示数据库返回的失败信息

QMessageBox::critical(0,QObject::tr("数据库打开失败"),db.lastError().text());

}

w.show();

QApplication::connect(&app, SIGNAL(lastWindowClose()), &app, SLOT(quit()));

return app.exec();

}

附件使用,

1、将libmysql.dll拷贝到C:\Qt\4.7.4\bin 这样Qt驱动可以调用mysql,打开数据库

2、将qsqlmysql4.dll、qsqlmysql4.lib、qsqlmysqld4.dll、qsqlmysqld4.lib拷贝到C:\Qt\4.7.4\plugins\sqldrivers 这就是Qt mysql的驱动

Qt Mysql驱动编译过程的更多相关文章

  1. Windows下QT MySQL驱动编译

    在Windows环境中使用Qt进行关于MySQL数据库的操作时,会出现如下问题: QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: availa ...

  2. linux编译Qt+mysql驱动+可执行文件移植目标机

    前言: 如果希望自己的Qt/C++程序在目标机上运行,最简单的方法就是在目标机上安装一个Qtcreater[Qtxxx.run],然后编译release的可执行文件,直接拉起即可. 但是有些环境情况比 ...

  3. qt mysql驱动问题解绝

    传统解决方法:一.解决问题 本文解决在Ubuntu16.04系统下,Qt5无法连接MySQL数据库的问题(Qt5缺少MySQL驱动,Qt5缺少libqsqlmysql.so动态库,如何安装libqsq ...

  4. Qt5.4 MSVC mysql驱动编译;

    http://www.mysql.com/ 下载mysql http://download.qt.io/archive/qt/     Qt 下载 1. mysql安装源码 注意勾选这一步,将mysq ...

  5. centos7下编译qt的mysql驱动

    在编译mysql驱动之前,首先要安装mysql,可以使用yum安装,这里将不再介绍. 在将qt和mysql都安装好之后,首先找到mysql的头文件以及他的共享库,我的mysql是使用yum安装的,头文 ...

  6. QT编译mysql驱动

    一. 下载mysql C链接库 地址:http://dev.mysql.com/downloads/ 根据当前系统选择下载: 二. 安装下载好的mysql驱动文件 注意,一定要安装在不含有中文.空格以 ...

  7. Window下 Qt 编译MySQL驱动(居然用到了动态库格式转换工具)

    一步步在Window下开发Qt 今天开始安装MySQL,看了些关于MySQL安装的博文,方法大致相同,但是遇到的细节问题各有不同,或者没有讲全面,下面来说说个人的安装过程及遇到的问题. 1.首先下载, ...

  8. windows下编译qt的mysql驱动

    windows下编译qt的mysql驱动cd %QTDIR%\src\plugins\sqldrivers\mysqlqmake –o Makefile INCLUDEPATH+="C:\M ...

  9. 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. ...

随机推荐

  1. Java Servlet 缺点

    1.web.xml配置比较多 2.servlet具有容器依赖性(tomcat没有启动,就没有用)

  2. CyclicBarrier正确的使用方法和错误的使用方法

    CyclicBarrier是java推出的一个并发编程工具,它用在多个线程之间协同工作.线程约定到达某个点,到达这个点之后的线程都停下来,直到最后一个线程也到达了这个点之后,所有的线程才会得到释放.常 ...

  3. Go RabbitMQ(三)发布订阅模式

    RabbitMQ 在上一节中我们创建了工作队列,并且假设每一个任务都能够准确的到达对应的worker.在本节中我们将介绍如何将一个消息传递到多个消费者,这也就是所说的发布订阅模式 为了验证该模式我们使 ...

  4. GB2312编码(为什么要加2020H、8080H,外码→内码→交换码→字形码)

    为什么要加上2020H和8080H? 区位码.内码.国标码怎么转换非常简单,但是令人迷惑的是为什么要那么转换?这种转换不可能平白无故地那样转换! 我搜索很多资料,找到最好的解释,总结如下: 首先,注意 ...

  5. oracle 树状结构递归 PL/SQL输出控制 包括空格输出控制

    树状结构 存储过程中通过递归构建,类似BBS回帖显示,代码共三段: 建表,插入数据,创建存储过程显示: 1.create table article(id number primary key,con ...

  6. PL/SQL:these query result are not updateable,include the ROWID to get updateab -----for update

    these query result are not updateable,include the ROWID to get updateab 原因: 其实,选中一个表后,右键,如果选择“query ...

  7. js 获取当前标签 jquery1.11.4

    .<input type="checkbox" onchange='allstu(this);return false;' /> 2.<input type=&q ...

  8. IDEA tomcat部署

    一.前言     1.CATALINA_HOME和CATALINA_BASE两个变量的区别:前者是tomcat的安装目录,后者是tomcat实例的目录.(安装一个tomcat,可以启动多个tomcat ...

  9. Connection to https://dl-ssl.google.com refused的解决办法

    使用SDK Manager.exe安装Android开发环境的时候会遇到: Fetching https://dl-ssl.google.com/android/repository/addons_l ...

  10. [javaSE] IO流(装饰设计模式)

    装饰设计模式:当想要对已有的对象进行功能增强时,可以自定义类将已有的对象传入,并提供加强功能,自定义的该类称为装饰类 典型的: Reader--FileReader --BufferedReader ...