龙空技术网

qt 6.2.2 用vc2019 编译MySQL 8.0.27驱动

alantop 939

前言:

如今朋友们对“vc访问mysql”都比较看重,朋友们都想要分析一些“vc访问mysql”的相关文章。那么小编也在网络上网罗了一些对于“vc访问mysql””的相关文章,希望你们能喜欢,兄弟们快快来学习一下吧!

QT 6.2.2 与以前qt5.15编译mysql的方法大不一样,以前是通过pro工程编译,新版的是要通过cmake编译mysql。具体编译过程如下:

准备工作

安装qt 6.2.2

官方下载地址:

安装mysql 8.0.27

官方下载地址 :

下载 420m的安装包

安装vs 2019 专业版

官方安装地址:

编译安装过程

准备工作安装好以后,按照如下提示键入代码即可。

以管理员身份进入powershell

# 进入源码目录cd D:\alantop_dir\alantop_sde\QT\6.2.2\Src\qtbase\src\plugins\sqldrivers# 准备工作mkdir buildcd build# 进入cmd, 调用VS环境进行构建cmd@REM 调用VS环境call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat"@REM configure(DEBUG)D:\alantop_dir\alantop_sde\QT\6.2.2\msvc2019_64\bin\qt-cmake.bat .. -G Ninja -DCMAKE_INSTALL_PREFIX="D:\alantop_dir\alantop_sde\QT\6.2.2\msvc2019_64" -DMySQL_INCLUDE_DIR="C:\Program Files\MySQL\MySQL Server 8.0\include" -DMySQL_LIBRARY="C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib"@REM 构建(DEBUG)cmake --build .@REM 安装(DEBUG)cmake --install .@REM configure(RELEASE)D:\alantop_dir\alantop_sde\QT\6.2.2\msvc2019_64\bin\qt-cmake.bat .. -G Ninja -DCMAKE_INSTALL_PREFIX="D:\alantop_dir\alantop_sde\QT\6.2.2\msvc2019_64" -DMySQL_INCLUDE_DIR="C:\Program Files\MySQL\MySQL Server 8.0\include" -DMySQL_LIBRARY="C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.lib" -DCMAKE_BUILD_TYPE=Release@REM 构建(RELEASE)cmake --build .@REM 安装(RELEASE)cmake --install .
测试是否成功

拷贝C:\Program Files\MySQL\MySQL Server 8.0\lib\libmysql.dll到项目生成目录下。.

用qt建立新的工程,在工程文件里加入模块sql,选择使用qmake编译,编译器选vc2019

键入如下代码:

#ifndef WIDGET_H#define WIDGET_H#include <QWidget>#include <QSqlQueryModel>#include <QSqlDatabase>QT_BEGIN_NAMESPACEnamespace Ui { class Widget; }QT_END_NAMESPACEclass Widget : public QWidget{    Q_OBJECTpublic:    Widget(QWidget *parent = nullptr);    ~Widget();    void connectDB();    QSqlDatabase db;    QSqlQueryModel model;private:    Ui::Widget *ui;};#endif // WIDGET_H

#include "widget.h"#include "ui_widget.h"#include <QSqlDatabase>#include <QDebug>#include <QMessageBox>#include <QSqlError>Widget::Widget(QWidget *parent)    : QWidget(parent)    , ui(new Ui::Widget){    ui->setupUi(this);    connectDB();}Widget::~Widget(){    delete ui;}void Widget::connectDB(){    qDebug() << QSqlDatabase::drivers();    db = QSqlDatabase::addDatabase("QMYSQL");    db.setHostName("127.0.0.1");    db.setUserName("root");    db.setPassword("123");    db.setDatabaseName("world");    if (db.open()==true)    {        qDebug() << "ok";    }    else    {        QMessageBox::warning(this, "fail", db.lastError().text());    }    model.setQuery("select * from city");    ui->tableView->setModel(&model);}

调试可以输出 QList("QSQLITE", "QMARIADB", "QMYSQL", "QODBC", "QPSQL") ,读取到数据库,即可代表成功。

qt 6.2.2 用vc2019 编译MySQL 8.0.27编译视频:

qt5系列配置文档和视频

QT 5.15.2 配置MySQL 8.0 文档 QT5.15.2 配置mysql 8.0视频教程

标签: #vc访问mysql #qt编译mysql驱动