达梦数据库在excel中通过odbc数据源导入表数据

本文详细介绍了如何在Windows系统上配置ODBC数据源,包括设置系统DSN,选择驱动程序,输入数据库连接参数,并测试数据源。此外,还提供了使用Excel通过ODBC数据源导入表数据的步骤,包括选择数据来源,编辑查询选项,以及将数据导入Excel表格。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 配置window odbc数据源

  1. 打开 控制面板-管理工具-设置ODBC数据源
    在这里插入图片描述

  2. 设置和配置一个系统 DSN,单击系统 DSN 标签,单击添加按钮增加一个新的DSN。
    在这里插入图片描述

  3. 选择 DM ODBC 3.0 驱动程序即 DM ODBC DRIVER,单击完成按钮 。输入数据源的名称、并选择你想要连接的数据库服务器的名字、使用的端口号、登录用户 及密码,单击测试按钮测试你配置的数据源是否正确。
    如果测试成功,可以单击确定按钮以保存你设置的新的系统数据源
    在这里插入图片描述
    在这里插入图片描述
    二、 Excel通过odbc数据源导入表数据

1.选择数据-自其他来源
在这里插入图片描述
2.选择 Microsoft Query
在这里插入图片描述
3.选择数据库数据库源
在这里插入图片描述

4.编辑选项,可选择用户模式
在这里插入图片描述
5.选择查询的表名跟列名
在这里插入图片描述
可以对数据进行简单筛选跟排序:
在这里插入图片描述
在这里插入图片描述

6.导入数据到表,即可显示数据库中得数据

在这里插入图片描述
在这里插入图片描述

在使用 Qt 实现与达梦数据库(DMDBMS)交互并完成 Excel 数据导入导出功能时,通常需要以下几个步骤:数据读取、数据解析、数据库连接、数据插入与导出。以下是具体实现方法。 ### 数据导入Excel达梦数据库) 1. **Excel 数据读取**:Qt 本身不直接支持 Excel 文件的读取,可以借助第三方库如 `QXlsx` 或 `libxlsxwriter` 进行 Excel 文件的解析。 2. **达梦数据库连接**:使用 Qt 的 `QSqlDatabase` 类连接达梦数据库达梦数据库支持 ODBC 接口,因此可以配置 ODBC 数据源并使用 Qt 的 ODBC 驱动进行连接。 3. **数据插入**:将 Excel 中的数据逐行读取并插入到达梦数据库的相应中。可以使用 `QSqlQuery` 执行 SQL 插入语句。 ```cpp #include <QSqlDatabase> #include <QSqlQuery> #include <QFile> #include <QTextStream> #include "xlsxdocument.h" // QXlsx 头文件 bool importExcelToDM(const QString &excelFilePath, const QString &tableName) { QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setHostName("localhost"); db.setPort(5236); // 达梦默认端口 db.setDatabaseName("DSN=DM8DSN"); // ODBC 数据源名称 db.setUserName("user"); db.setPassword("password"); if (!db.open()) { qDebug() << "无法连接到达梦数据库"; return false; } QXlsx::Document xlsx(excelFilePath); int rowCount = xlsx.dimension().rowCount(); int colCount = xlsx.dimension().columnCount(); for (int row = 1; row <= rowCount; ++row) { QStringList values; for (int col = 1; col <= colCount; ++col) { QVariant cellValue = xlsx.read(row, col); values << cellValue.toString(); } QString sql = QString("INSERT INTO %1 VALUES (%2)").arg(tableName).arg(QString("?, ").repeated(colCount - 1) + "?"); QSqlQuery query; query.prepare(sql); for (int i = 0; i < colCount; ++i) { query.addBindValue(values[i]); } if (!query.exec()) { qDebug() << "插入失败:" << query.lastError(); } } db.close(); return true; } ``` ### 数据导出(达梦数据库Excel) 1. **从达梦数据库查询数据**:使用 `QSqlQuery` 执行 SQL 查询获取需要导出的数据。 2. **写入 Excel 文件**:使用 `QXlsx` 或 `libxlsxwriter` 将查询结果写入 Excel 文件。 ```cpp #include <QSqlDatabase> #include <QSqlQuery> #include "xlsxdocument.h" bool exportFromDMToExcel(const QString &tableName, const QString &excelFilePath) { QSqlDatabase db = QSqlDatabase::addDatabase("QODBC"); db.setHostName("localhost"); db.setPort(5236); db.setDatabaseName("DSN=DM8DSN"); db.setUserName("user"); db.setPassword("password"); if (!db.open()) { qDebug() << "无法连接到达梦数据库"; return false; } QSqlQuery query(QString("SELECT * FROM %1").arg(tableName)); QXlsx::Document xlsx; int row = 1; while (query.next()) { QSqlRecord record = query.record(); for (int col = 0; col < record.count(); ++col) { xlsx.write(row, col + 1, query.value(col).toString()); } ++row; } xlsx.saveAs(excelFilePath); db.close(); return true; } ``` ### 注意事项 - **驱动支持**:确保系统中已安装达梦数据库ODBC 驱动,并在 ODBC 数据源管理器中正确配置数据源名称(DSN)。 - **Excel 库选择**:QXlsx 是一个常用的 Qt Excel 操作库,支持读写 `.xlsx` 格式文件,可以通过 `git clone https://github.com/QtExcel/QXlsx.git` 获取。 - **性能优化**:对于大数据量的导入导出,建议使用批量操作或事务机制以提高效率。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值