环境:dm8、qt5.12.12
1、下载达梦数据库
产品下载-达梦数据 (dameng.com)https://www.dameng.com/list_103.html
下载里面有安装教程、可以根据教程走。
2、达梦QT接口源码
产品下载 | 达梦数据库 (dameng.com)https://eco.dameng.com/download/
这里面也有编译的具体步骤
把plugins_sqldrivers文件下的文件拷贝到sqldrivers目录下入下图
3、MimGW编译dm5.12
下图用qt打开dm5.12的dm.pro文件添加代码如下(C:\DMsystem是自己达梦的安装路径)
然后打开qsqldriverbase.pri文件更改如下图
QT编译好的库在plugins文件夹下 如下图
4、添加驱动
复制 qsqldm.dll到qt的目录下如下图(或者复制到QT项目目录下 放在sqldrivers文件下)
添加环境变量(不添加无法加载驱动)
5、测试代码
#include <QSqlDatabase>
#include<QtSql>
QSqlDatabase m_db;
m_db=QSqlDatabase::addDatabase("QDM");
m_db.setHostName("127.0.0.1");
m_db.setPort(5236);
m_db.setDatabaseName("SYSDB");
m_db.setUserName("SYSDBA");
m_db.setPassword("SYSDBA");
if(m_db.open()){
qDebug()<<"connect ok";}
else {
qDebug()<<"connect fail!"<<m_db.lastError().text().toLatin1();}
6、MSVC2017连接达梦数据库
操作和上边一样 编译的时候可能会遇到error: msvc-version.conf loaded but QMAKE_MSC_VER isn't set错误
解决办法1 在下面的文件里面添加
# 指定使用 MSVC 2017 编译器版本
QMAKE_MSC_VER = 1899
解决办法2
手动清空工程原来编译后生成的文件夹及文件,重新生成工程即可。
7、Linux连接达梦数据库
注意:Linux环境下,在安装好的的DM软件的路径下找到 libcrypto.so,把这个放到系统路径下 usr/lib
自己的软件需要新建文件夹sqldrivers把下列的文件放到该文件下