当前位置:Gxlcms > 数据库问题 > Qt编译mysql驱动

Qt编译mysql驱动

时间:2021-07-01 10:21:17 帮助过:32人阅读

参考文档如下: http://www.qtcn.org/bbs/read-htm-tid-52944.html http://blog.sina.com.cn/s/blog_a6fb6cc90101h1gr.html
 
1.去mysql的官网下载mysql的zip包(记住要下载的是32位的zip包,否则编译的时候会出错!!!和编译器版本对应!!!) http://dev.mysql.com/downloads/mysql/ 技术分享

2.新建目录d:\qtmysql将下载好的zip包中的include和lib目录拷贝到d:\qtmysql
技术分享

3.修改d:\%QTDIR%\src\plugins\sqldrivers\mysql\mysql.pro文件 在该文件末尾加入如下两行 INCLUDEPATH+= "d:/qtmysql/include"
LIBS+= -Ld:/qtmysql/lib/ -llibmysql
4.使用QtCreater打开该mysql.pro工程文件 编译该工程文件即可
5.编译完成后在该工程的debug文件夹中将看到相应的.dll文件和.a文件。
技术分享

进入release目录发现并没有任何文件,此时打开qt命令行
技术分享

并进入该工程目录
技术分享

执行make release即可在release目录下生成相应的.dll文件和.a文件
技术分享

6.将上一步生成的两个.dll文件和.a文件拷贝到d:\%QTDIR%\plugins\sqldrivers目录下
技术分享

7.将d:\qtmysql\lib\libmysql.dll拷贝到d:\%QTDIR%\bin目录下即可。
8.测试(记得在pro文件中加上QT+=sql)
#include <QApplication>
#include <QtSql>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    qDebug()<<"available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
        qDebug()<<driver;

    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setPort(3306);
    db.setDatabaseName("hzq");
    db.setUserName("root");
    db.setPassword("123456");
    if(!db.open())
        qDebug()<<"failed to connect to mysql";
    else
        qDebug()<<"success";

    QString select_all_sql = "select * from teacher_class";

    //查询所有数据
    QSqlQuery sql_query;
    sql_query.prepare(select_all_sql);
    if(!sql_query.exec())
    {
        qDebug()<<sql_query.lastError();
    }
    else
    {
        while(sql_query.next())
        {
            int id = sql_query.value(0).toInt();
            QString templ_name = sql_query.value(2).toString();
            qDebug()<<QString("Id:%1     Templ Name:%2").arg(id).arg(templ_name);
        }
    }

    return a.exec();
}


测试结果如下:
技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

Qt编译mysql驱动

标签:qt4   mysql驱动编译   

人气教程排行