Qt达梦数据库连接(Windows和麒麟[银河和中标])

达梦数据库管理系统是达梦公司推出的具有完全自主知识产权的高性能数据库管理系统,简称DM。达梦数据库管理系统的最新版本是8.0版本,简称DM8。

DM8采用全新的体系架构,在保证大型通用的基础上,针对可靠性、高性能、海量数据处理和安全性做了大量的研发和改进工作,极大提升了达梦数据库产品的性能、可靠性、可扩展性,能同时兼顾OLTP和OLAP请求,从根本上提升了DM8产品的品质。

一、 产品下载、安装以及建表(Windows 和麒麟一致)

1、 产品下载地址: http://www.dameng.com

2、 安装直接下一步,直到安装完成(以麒麟系统为例)。

a) 主要步骤如下:

3、 建表关键步骤截图

二、 数据库的连接配置(ODBC)

1、 Windows 系统(比较简单)

2、 麒麟系统

2.1 配置系统的ODBC库 ,通过测试发现使用unixODBC-2.3.0 或 unixODBC-2.3.7都可以的,资源下载(https://download.csdn.net/download/goodowxy/15347928 或 https://download.csdn.net/download/goodowxy/15347887 )

unixODBC-2.3.0编译步骤:

A、进入目录执行configure:./configure –enable-gui=no

B、make 和 make install

C、通过命令查看配置文件路径 odbc_config –odbcini

配置文件目录 /usr/local/etc下有两个数据库配置文件,分别为odbc.ini和 odbcinst.iniodbc.ini中内容如下(值根据自己实际情况配置):

[dm7]

Description = DM ODBC DSND

Driver = DM7 ODBC DRIVER

SERVER = localhost

UID = MNC

PWD = MNC20202020

TCP_PORT = 5236

odbcinst.ini中内容如下(值根据自己实际情况配置):

Description = ODBC DRIVER FOR DM7

#DRIVER = libdodbc.so

DRIVER = /opt/dmdbms/bin/libdodbc.so

2.2 拷贝Qt ODBC 驱动 libqsqlodbc.so 至目录/opt/Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers [Qt的安装目录,根据具体路径修改]

2.3 设置系统的环境变量 在文件/etc/bash.bashrc 中添加下面语句(根据机器的实际路径配置):

export LD_LIBRARY_PATH=/opt/dmdbms/bin/:/opt/Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers/:$LD_LIBRARY_PATH

在文件/etc/profile 中添加下面语句(根据机器的实际路径配置):

PATH=$PATH:/opt/dmdbms/bin/:/opt/Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers/

2.4、设置Qt Creator的环境变量信息  项目 -> Build & Run -> Run – > Run Environment -> LD_LIBRARY_PATH 和 PATH   LD_LIBRARY_PATH 变量附上/opt/dmdbms/bin/:/opt/Qt5.9.2/5.9.2/gcc_64/plugins/sqldrivers/

三、 Qt 连接数据库示例代码(Windows 和麒麟一致)

3.1创建实例:

m_db = QSqlDatabase::addDatabase(“QODBC”);

m_pSqlConfigTableModel = new QSqlTableModel(this, m_db);

m_pSqlConfigTableModel->setEditStrategy(QSqlTableModel::OnManualSubmit);

//其中DSN=dmtest指的是达梦数据源,uid和pwd就是前边的ID和密码

QString strName =”DSN=dmkuxuntest;server=localhost;TCP_PORT=5236;uid=SYSDBA;pwd=shkuxun2020″;
m_db.setDatabaseName(strName);

m_db.setHostName(“127.0.0.1”);

m_db.setPort(5236);

m_db.setDatabaseName(“dmkuxuntest”);

m_db.setUserName(“kuxundev4dba”);

m_db.setPassword(“shkuxun123456”);

3.2打开或关闭:

m_db.open();

m_db.close();

3.3执行语句(以查询类为例):

QSqlQuery sqlQuery(db);

QString strSql = QString(“select count(0) from user_tables where table_name = ‘%1′”).arg(strTableName);

int nTableCount = 0;

if (sqlQuery.exec(strSql))

{

blRet = sqlQuery.next();

if (blRet)

{

nTableCount = sqlQuery.value(0).toInt();

blRet = nTableCount > 0;

}

}
四、 结束语

Qt连接、配置达梦数据库针对不同平台的主要内容就这些了,接下来有机会再分享一下使用Qt 在中标麒麟上开发视频( FFmpeg )以及文档相关内容(PDF 和 WPS) ,如有兴趣,可以私聊沟通,谢谢!