环境信息:W11 Qt5.12及以上 dm8
QODBC达梦
Windows环境创建ODBC数据源
使用 ODBC 方法访问 DM 数据库服务器之前,必须先配置 ODBC 数据源
- 在控制面板Windows工具中显示ODBC数据源管理器
- ODBC数据源管理器标签
- 用户 DSN:添加、删除或配置本机上的数据源,它们只可由当前用户使用。
- 系统 DSN:添加、删除或配置本机上的数据源,它们可由任何用户使用。
- 文件 DSN:添加、删除或配置在分离文件中的数据源。这些文件可以被安装了同样数据库驱动器的用户共享。
- 驱动程序:列出了安装在客户机上的数据库驱动器。
- 跟踪:用于测试你的数据库应用程序。它跟踪客户机和数据库服务器之间的 ODBC API 的调用。
- 连接池:允许不同的应用程序自动复用多个连接。这有助于限制和数据库服务器的通信过载。
- 关于:显示主要 ODBC 组件的版本。
- 设置和配置一个系统 DSN,单击系统 或用户DSN 标签,单击添加按钮增加一个新的 DSN
- 选择 DM ODBC DRIVER 驱动程序,单击【完成】按钮,显示 DM ODBC DRIVER数据源配置对话框
通过QODBC连接DM数据库
- 使用增加 ODBC 用户数据源
- 测试代码
#include <QCoreApplication>
#include <QtSql>
#include <QDebug>
#include <QSqlDatabase>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase database= QSqlDatabase::addDatabase("QODBC");
database.setHostName("127.0.0.1");
database.setPort(5236);
database.setDatabaseName("DM");// 与添加的用户DSN用户名保持一致
database.setUserName("SYSDBA");
database.setPassword("SYSDBA");
if (database.open())
qDebug() << "connect ok!";
else
{
qDebug() << "connect fail! " << database.lastError().text().toLatin1();
}
return a.exec();
}
如果 ODBC 数据源是 32 位,构建项目需要使用 32位 构建套件编译,如果 ODBC 数据源是 64 位,构建项目则需要使用 64 位构建套件编译,因当前数据源为 64 位,因此使用 64 位构建套件编译 。使用时需要添加core和sql。
- 查询
...
QSqlQuery* sqlQuery = new QSqlQuery(database);
if (!sqlQuery->exec("SELECT * FROM 模式名.表名"))
{
QSqlError error = sqlQuery->lastError();
QMessageBox::warning(NULL, error.driverText(), error.text());
}
else
{
while (sqlQuery->next())
{
int id = sqlQuery->value("id").toInt();
QString Name = sqlQuery->value("weapon").toString();
}
}
...