当前位置:Gxlcms > mysql > QT中如何驱动链接数据库MYSql

QT中如何驱动链接数据库MYSql

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

1.下载安装MYSql数据库,安装时候必须安装INCLUDE和LIB文件夹,并且把这两个文件夹放到C盘根目录C:\ mysql \下; 2.下载QT源码,并在QT源码目录D:\qt-everywhere-opensource-src-5.0.1\qtbase\src\plugins\sqldrivers\ mysql下编译mysql.pro文件; 编译步骤


1.下载安装MYSql数据库,安装时候必须安装INCLUDE和LIB文件夹,并且把这两个文件夹放到C盘根目录C:\mysql\下;

2.下载QT源码,并在QT源码目录D:\qt-everywhere-opensource-src-5.0.1\qtbase\src\plugins\sqldrivers\ mysql 下编译mysql.pro文件;

编译步骤: a从libmysql.lib生成libmysql.a文件
>>C:
>>cd mysql\lib\opt
>>reimp -d libmysql.lib (生成 libmysql.def文件)
>>dlltool -k -d libmysql.def -l libmysql.a (生成 libmysql.a文件)

(把生成的.a文件复制到D:\qt-everywhere-opensource-src-5.0.1\qtbase\src\plugins\sqldrivers\ mysql文件夹下

b: 用记事本打开D:\qt-everywhere-opensource-src-5.0.1\qtbase\src\plugins\sqldrivers\ mysql\mysql.pro文件,在第二行加入: INCLUDEPATH += "C:/mysql/include" LIBS += "C:/mysql/lib/opt/libmysql.lib" 并保存.


c:生成Qt下的mysql驱动:(在QT相应的命令行工具中运行如下命令)
>>cd \
>>cd qt\src\plugins\sqldrivers\mysql
>>QMAKE -o Makefile "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\Llib\opt\libmysql.a" mysql.pro
>>mingw32-make

3:在D:\qt-everywhere-opensource-src-5.0.1\qtbase\plugins\sqldrivers目录下生成驱动QT所需要的文件

  1. qsqlmysql4.dll
  1. libqsqlmysql4.a
  1. qsqlmysqld4.dll
  1. libqsqlmysqld4.a 最后把
    1. qsqlmysqld4.dll
    1. libqsqlmysqld4.a 这两个文件复制到QT工具的安装目录的D:\Qt\5.0.1\mingw47_32\plugins\sqldrivers下,写如下代码测试:

  1. 4:测试代码
  2. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    qDebug() << "ODBC driver valid?" << db.isValid();
    db.setDatabaseName("mytest");
    db.setHostName("localhost");
    db.setUserName("root");
    db.setPassword("19881014");
    db.setPort(3306);
    if(db.open())
    {
    QSqlQuery query;
    //新建student表
    query.exec("create table student (id int primary key, name text,course int)");

    query.prepare("insert into student values (?, ?, ?)");

    QVariantList id;
    id << 1 << 2 << 3;
    query.addBindValue(id);

    QVariantList name1;
    name1 << "Harald" << "Boris" << "Trond" << QVariant(QVariant::String);
    query.addBindValue(name1);

    QVariantList course;
    course<< 1 << 1 << 2;
    query.addBindValue(course);

    if (!query.execBatch())
    {
    qDebug() << "error";
    };


人气教程排行