• vs2017中Qt数据库连接


    配置环境变量,

    把qt的msvc2017_64的bin目录添加至环境变量(具体我就不累赘了,就是那个path)

    新建Qt项目

     

     

     点击Finish

    然后找到main.cpp,进行编辑,代码如下

     1 #include "test.h"
     2 #include<QtWidgets/QApplication>
     3 #include<qsqldatabase.h>
     4 #include<qmessagebox.h>
     5 #include<qdebug.h>
     6 #include<qsqlerror.h>
     7 int main(int argc, char *argv[])
     8 {
     9     QApplication a(argc, argv);
    10     /*test w;
    11     w.show();
    12     */
    13     qDebug() << QSqlDatabase::drivers();
    14     QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    15     db.setDatabaseName("test");
    16     db.setHostName("localhost");
    17     db.setUserName("root");
    18     db.setPassword("root");
    19     db.setPort(3306);
    20     if (db.open()) {
    21         QMessageBox::warning(NULL, QString("Tip"), QString("success"), QMessageBox::Yes);
    22         return -1;
    23     }
    24     else {
    25         QMessageBox::critical(0, QObject::tr("fail"), db.lastError().databaseText(), QMessageBox::Cancel);
    26         return 0;
    27     }
    28     //return a.exec();
    29 }

    要特别注意db.setPassword里面的密码要和navicat里面设置的密码保持一致,不然会有如下结果:

     把项目属性设置一下:

    然后顺着Qt安装目录找到这个mysql.pro,

    选择编译器后点击Configure Project

    指定mysql链接库:

    将生成路径(mysql/lib)下刚刚生成的驱动文件qsqlmysql.dllqsqlmysqld.dll

    拷贝至msvc2017_64的驱动文件夹,替换原本的驱动,如下图:

     

     理论上是可以生成那两个dll的,但是我搞了半天也没有生成,最后拿了别人生成成功的那两个dll...这里我也卡住了

    最后加载驱动,将mysql解压目录lib目录下的libmysql.dll拷贝至msvc2017_64bin目录下

     

     编译运行:

     成功了!

    **我搞了一天,百度了很久,最后还是没有生成那两个dll,还是拿了别人生成成功的,然后把数据库的那个dll加进来,即使是这样也不一定成功,

    因为我之前疏忽导致环境变量没配好,期间我重装了两次Qt,最后顽强的连接上了,搞了一天,整个人都不好了,快崩溃了,总之这3个dll要搞到位,

    环境变量也要配好,连接数据库的代码也要注意**

  • 相关阅读:
    三剑客之Grep家族
    Linux默认权限命令:umask
    Linux特殊权限管理SUID|SGID|STICKY
    zabbix的web界面出现乱码解决方案
    启动zabbix-server/agent报错:cannot open "/etc/zabbix/logs/zabbix_server.log": [13] Permission denied
    Zabbix-Agent配置文件详解
    使用yum安装报错:[Errno 256] No more mirrors to try
    grep/sed/awk命令查看指定时间段的日志
    数据库SQL练习(一):数据查询
    连接数据库报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
  • 原文地址:https://www.cnblogs.com/YLJ666/p/12600596.html
Copyright © 2020-2023  润新知