QT 之 使用 ODBC 驱动连接人大金仓数据库
获取数据库驱动和依赖动态库
- 此操作可在人大金仓官网下载与系统匹配的接口动态库,或者从架构数据库的源码中获取驱动和依赖动态库
- 分别为:
驱动动态库:kdbodbcw.so
依赖动态库:libkci.so.5
安装 odbcinst 软件
sudo apt install odbcinst -y
- 配置驱动文件 /etc/odbcinst.ini 如下:
[KingbaseES]
Description = KingbaseES Driver
Driver = /opt/KingbaseES/kdbodbcw.so
Setup = /opt/KingbaseES/libkci.so.5
Debug = 0
CommLog = 1
使用QT进行连接数据库,代码如下:
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtCore/QDebug>
int main(void)
{
QString driver = "KingbaseES"; // 此名称和 odbcinst.ini 中的名称相同【KingbaseES】
QString server = "IP Address";
QString database = "TEST";
QString username = "***"; // 用户名
QString password = "***"; // 密码
QString dsn = QString("Driver={%1};Server=%2;Database=%3;Uid=%4;Password=%5;Port=%6")\
.arg(driver)\
.arg(server)\
.arg(database)\
.arg(username)\
.arg(password)\
.arg(54321);
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName(dsn);
if (db.open())
qDebug() << "connect successful";
else
qDebug() << db.lastError().text();
return 0;
}
- 运行结果如下: