Windows环境创建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");
database.setUserName("SYSDBA");
database.setPassword("SYSDBA");
if (database.open())
qDebug() << "connect ok!";
else
{
qDebug() << "connect fail! " << database.lastError().text().toLatin1();
}
return a.exec();
}
...
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();
}
}
...