当前位置: 首页 > news >正文

OLEDB连接对象介绍(一) - 实践

OLEDB连接对象介绍(一) - 实践

在WPS Office中,可以通过OLEDB接口实现与外部数据源的交互,该功能在工作簿上通过OLEDBConnection对象实现,而在工作表中可以使用QueryTable对象。该对象主要用于建立与数据服务器的连接,需要指定目标服务器地址以及待访问的数据对象名称。此外,OLEDBConnection 对象还支持可选配置项,包括:

  • 身份验证凭据信息(如用户名/密码等认证参数)
  • 可执行命令(例如针对SQL Server数据库的SELECT查询语句等需要服务器处理的指令)
  • 其他参数(如:是否禁用多活动结果集等等)

一、OLEDB连接字符串

let connstr = `OLEDB;Provider=MSOLEDBSQL.1;Password=123456789;
Persist Security Info=True;User ID=sa;Initial Catalog=test;
Data Source=127.0.0.1;Use Procedure for Prepare=1;
Auto Translate=True;Packet Size=4096;Workstation ID=DESKTOP-******;
Use Encryption for Data=False;Tag with column collation when possible=False;
MARS Connection=False;DataTypeCompatibility=0;Trust Server Certificate=False;
Application Intent=READWRITE;MultiSubnetFailover=False;
Use FMTONLY=False;TransparentNetworkIPResolution=True;
Connect Retry Count=1;Connect Retry Interval=10`;

1.1、连接字符串参数介绍

参数说明
OLEDB连接方式
Provider=MSOLEDBSQL.1;OLE DB 驱动提供程序版本
Password=************;数据库密码
User ID=**;数据库用户名
Initial Catalog=test;连接默认数据库
Data Source=***.***.**.*;数据库服务器地址(IP或主机名)
Persist Security Info=True;连接成功后保留密码信息
Use Encryption for Data=False;不加密数据传输
Trust Server Certificate=False;不信任服务器证书(需要有效证书)
Packet Size=4096;网络包大小(字节)
Connect Retry Count=1;连接重试次数
Connect Retry Interval=10;重试间隔(秒)
TransparentNetworkIPResolution=True;启用透明网络IP解析
Use Procedure for Prepare=1;使用存储过程准备语句
Auto Translate=True;自动转换字符集
Workstation ID=DESKTOP-*******;客户端计算机名称
MARS Connection=False;禁用多活动结果集
DataTypeCompatibility=0;数据类型兼容模式(0=最新)
Application Intent=READWRITE;应用程序意图(读写模式)
MultiSubnetFailover=False;禁用多子网故障转移
Use FMTONLY=False;不使用FMTONLY元数据查询
Tag with column collation when possible=False;列排序规则标记

在 WPS Office​ 中,可以通过 OLEDB 接口​ 实现与外部数据源的交互,该功能由 OLEDBConnection 对象​ 管理。该对象的核心作用是建立与数据服务器的连接,主要涉及以下三类参数:

核心参数(红色标注)
  • 服务器地址(需连接的目标数据库服务器名称)
  • 数据对象名称(要在该服务器上访问的具体对象,如表、视图等)
安全相关参数(绿色标注)
  • 身份验证凭据(如用户名/密码等认证信息)
  • 推荐安全方案:若环境允许,建议启用 Windows 身份验证(集成安全认证),避免明文存储密码,提升安全性。
其他参数(黑色标注)
  • 可执行命令(如针对 SQL Server​ 的 SELECT 查询语句,或其他需服务器处理的指令)

通过合理配置这些参数,用户既能建立基础数据连接,也能根据安全需求选择更可靠的认证方式。如 Windows 身份验证:

let secureConnStr = `OLEDB;Provider=MSOLEDBSQL.1;
Integrated Security=SSPI;  // 使用 Windows 身份验证
Initial Catalog=test;
Data Source=127.0.0.1;
Encrypt=Yes;               // 启用加密
Trust Server Certificate=Yes;
Connection Timeout=30;`;

1.2、连接字符串的获取

在 WPS Office​ 中,用户可通过软件提供的 可视化数据库连接界面​ 手动获取连接字符串,具体操作步骤如下图所示:

第一步:点击菜单栏中的数据

第二步:点击获取数据,选择导入数据,打开选择数据源对话框

第三步:选择其他高级,打开连接属性

我们看到,有支持连接Oracle数据库的、连接Sql Server数据库;还有结合ODBC驱动连接任意数据库的方式等等,这里以Sql Server为例。

第四步:点击 Microsoft OLE DB Provider for Sql Server

  1. 基础参数设置

    • 输入目标数据库的 服务器IP地址

    • 根据认证方式选择填写:

      ▶ 若使用 标准身份验证,需补充输入 用户名​ 和 密码

      ▶ 若使用 Windows 验证(或 Windows NT 集成安全设置),无需填写用户名/密码(系统自动调用当前登录Windows账户的权限)

  2. 目标数据库选择

    从下拉列表或输入框中指定需要连接的 具体数据库名称

  3. 连接测试

    点击 [测试连接]​ 按钮,若弹窗提示 “连接成功”​ 字样,则表明当前配置的参数有效,与目标数据库的连接没有出错

  4. 点击确定使得测试链接窗口关闭,再点击数据连接属性窗口的确定

第五步:复制连接字符串,粘贴到JS宏代码中

完成上述配置并成功建立数据库连接后,系统将自动生成对应的 连接字符串(通常可在【选择数据源】界面的「手工输入连接语句」面板中直接查看/复制)。您可直接将该字符串应用于 WPS JavaScript 宏代码​ 中,用于后续的数据库交互操作(如数据查询、写入等)。

二、OLEDB连接字符串的基本使用

2.1、工作簿上的连接

function contest() {let connstr = "你复制过来的连接字符串";let connectionName = "myDatabase80"; // 连接名称let description = "实例数据库"; // 对连接的简要描述console.clear();let query = "select distinct sj 市级 from uf_scrl where tbsj='2025-11-01'";let q = "create view vw_city as select distinct sj 市级 from uf_scrl where tbsj='2025-11-01'";let conection = ThisWorkbook.Connections.Add2(connectionName, description, connstr, query, xlCmdSql);let conn = conection.OLEDBConnection;conn.SaveAsODC("E:\\vscode\\wpsjs\\jsa_database\\myConnection.odc",);conn.Refresh(true);// 捕获数据库异常let errors = Application.OLEDBErrors;console.log("异常数:" + errors.Count);for (let i = 1; i <= errors.Count; i++) {console.log(`The following error occurred:${errors.Item(i).ErrorString} : ${errors.Item(i).SqlState}`);}console.log(conn.OLAP);console.log(conn.CommandText);console.log(conn.Connection);conn.MaintainConnection = false; //关闭连接conn.Delete(); // 删除连接
}

2.2、工作表上的连接

// 工作表上的连接
function conntest_sht() {let connstr = "你复制的连接字符串";let qyTb = Worksheets.Item(1).QueryTables.Add(connstr, Range("A1"), undefined);qyTb.Name = "sheet_database_con";qyTb.CommandType = xlCmdSql;qyTb.CommandText =  "select distinct sj 市级 from uf_scrl where tbsj='2025-11-01';";qyTb.Refresh(true); // 将查询结果返回到工作表中,如果是Create等语句不用写这一行// 捕获数据库异常let errors = Application.OLEDBErrors;console.log("异常数:" + errors.Count);for (let i = 1; i <= errors.Count; i++) {console.log(`The following error occurred:${errors.Item(i).ErrorString} : ${errors.Item(i).SqlState}`);}qyTb.Delete(); // 删除连接
}

执行效果图如下

http://www.jsqmd.com/news/355791/

相关文章:

  • uni-app——uni-app 小程序 Loading 遮罩卡死页面的排查与最佳实践
  • SpeedrunEthereum
  • 2026养生壶最建议买的品牌推荐及选购参考 - 品牌排行榜
  • 游戏大厂 FPS 射击游戏高精度物理同步方案详解(大白话、生动版)
  • nvm安装使用
  • 数据库的介绍、安装、单表
  • MindMap部署
  • ByteDance研究团队推出评估AI模型深度研究能力的全新基准
  • UC Davis携手Google DeepMind:让AI模型学会“看重点“的训练方法
  • DS 大大大大训练
  • 腾讯混元团队:AI智能体如何学会真正的“深谋远虑“?
  • Vue源码解析
  • 2026年北海管道疏通服务评测推荐:专业疏通服务排行榜单深度解析与选择指南 - 品牌推荐
  • 机器学习的商业化变现
  • 移植Google Gemini Nano到RK3588 NPU,实现高效边缘推理
  • 20260201决策单调性专题作业 - Link
  • Java AI 工程化:基于 MCP 协议的自动化发帖实践-1770465571465
  • 机器学习 —— 数据泄露
  • 阿里巴巴编程规范---编程规约之常量定义与代码格式篇
  • 【图像融合】超像素分割的多光谱图像融合【含Matlab源码 15077期】
  • 阿里巴巴编程规范---编程规约之命名风格篇
  • 前端打包工具webpack、vite
  • 【图像融合】平稳小波变换分解结合DnCNN SWT-PnP-DnCNN混合多模态医学图像融合【含Matlab源码 15076期】
  • 大数据标注中的众包模式:优势与挑战分析
  • 实用指南:Docker 存储卷管理
  • 大数据领域数据清洗的工作流程详解
  • 深度探讨提示工程架构师数据安全策略的最佳实践
  • 2026年北京IWC万国表手表维修评测推荐:甄选官方售后和优质网点,规避非官方维修风险 - 品牌推荐
  • 【图像融合】基于matlab平稳小波变换分解结合DnCNN SWT-PnP-DnCNN混合多模态医学图像融合【含Matlab源码 15076期】
  • 2026年北京NOMOS手表维修推荐评测:非官方维修网点服务与售后中心选择指南 - 品牌推荐