您的位置:首页 > 编程语言 > Qt开发

在VS2010中集成QT + Qt4.8.2编译MYSQL驱动

2015-05-15 11:46 411 查看
环境:VS2010 +Qt4.8.2+MySQL

   针对5.2之前的版本MySQL需要自行编译,这里就以4.8.2为例(其它版本同理)。
   关于数据库驱动的介绍以及如何编译可以参考Qt助手,里面有一节:SQL Database Drivers。





环境:VS2010 +Qt4.8.2

   其实版本问题没有什么太大影响,因为编译本来就大同小异。。。

一、下载Qt安装包与Qt插件

qt-win-opensource-4.8.2-vs2010.exe
qt-vs-addin-1.1.11-opensource.exe

 

   注意:一定要先安装qt-win-opensource-4.8.2-vs2010.exe,然后在安装qt-vs-addin-1.1.11-opensource.exe,
           

         安装完成后重启vs2010,即可在菜单栏上看到QT选项

二、下载MySQL

MySQL主页:http://www.mysql.com/.

(1)进入主页,选择:Downloads(GA)
    如下:





(2)转到页面最下面,MySQL Community Edition (GPL),选择:Download fromMySQL Developer Zone >>
    如下:





(3)转到页面右上角,选择:New Releases对应的版本(这里我选择的是5.6)
    如下:





(4)转到页面最下面,Other Downloads,选择对应的版本(这里我选择的是32位)(注意MySQL64或32位对后面的配置有影响,而且安装路径不能有空格)
    如下:





   下载完成之后,进行解压,拷贝到一个指定的路径(我选择的是:D:\mysql)。

三、编译
(1)选择:开始->所有程序->Qt by Nokia v4.8.2 (VS2010 OpenSource)->Qt 4.8.2 Command Prompt
    如下:



(2)进入Qt源码目录,我的为:D:\Qt4.8.2\src\plugins\sqldrivers\mysql
(3)执行命令:qmake "INCLUDEPATH+=D:\mysql\include""LIBS+=D:\mysql\lib\libmysql.lib" mysql.pro

         或者

             编辑目录下的mysql.pro文件

             添加

            INCLUDEPATH+="D:\mysql\include"

            LIBS+="D:\mysql\lib\libmysql.lib"

            执行命令:qmake -o Makefile mysql.pro

注意:这里如果使用的MySQL\include和lib是64位的,那么在qmake的时候是会有问题的,在后面的nmake时是无法成功生成链接库的

    如下:



   这里会出现警告,但对后面无影响。

  执行完成之后,就会生成Makefile文件。
   如下:



(4)选择:开始->所有程序->Microsoft Visual Studio 2010->VisualStudio Tools->Visual Studio 命令提示(2010)
    如下:





(5)执行命令:nmake
      切换到D:\Qt4.8.2\src\plugins\sqldrivers\mysql 目录下

      执行nmake debugnmake release

如下:





    正常结束后,就会生成MySQL驱动库。

4000
如下:



(6)准备环境
   将生成的qsqlmysql.dll、qsqlmysqld.dll、qsqlmysql.lib、qsqlmysqld.lib拷贝到D:\Qt4.8.2\plugins\sqldrivers目录中。
   将MySQL目录(D:\mysql\lib)下的libmysql.dll、libmysqld.dll拷贝到D:\Qt4.8.2\bin目录中。

    好了,到这里就大功告成了。

(7)测试连接

#include <QtCore/QCoreApplication>

#include <QtSql>

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

{

    QCoreApplication a(argc, argv);

    qDebug()<<"available drivers:";

    QStringList drivers = QSqlDatabase::drivers();

    foreach(QString driver, drivers)

    qDebug()<<driver;

    //打开MySQL

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

    data_base.setHostName("127.0.0.1");  //设置主机地址

    data_base.setPort(3306);  //设置端口

    data_base.setDatabaseName("my_database");  //设置数据库名称

    data_base.setUserName("root");  //设置用户名

    data_base.setPassword("root");  //设置密码

    if(!data_base.open())

        qDebug()<<"failed to connect to mysql";

    else

        qDebug()<<"success";

    QString select_all_sql = "select * from my_classinfo";

    //查询所有数据

    QSqlQuery sql_query;

        sql_query.prepare(select_all_sql);

    if(!sql_query.exec())

    {

        qDebug()<<sql_query.lastError();

    }

    else

    {

        while(sql_query.next())

        {

            QString id = sql_query.value(0).toString();

            QString templ_name = sql_query.value(1).toString();

            qDebug()<<QString("Id:%1     Templ Name:%2").arg(id).arg(templ_name);

        }

   }

      return a.exec();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  vs2010 qt4 mysql qt 编程