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

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.dtcms.com/a/582843.html

相关文章:

  • 【申论】申论基础知识
  • 商务网站建设调研host wordpress
  • 一款AB实验分析智能体是如何诞生的
  • 你的MES系统,是在“记录过去”还是在“指挥未来”?
  • FPGA教程系列-Vivado中串行FIR设计(非FIR核)
  • I2C接口(2):IIC多主设备仲裁机制详解--从原理到Verilog实现
  • 技术网站推广范例怎么建立自己公司的网站
  • 网站的设计公司网咖活动营销方案
  • 北京市朝阳区网站开发公司中国建设监理网站
  • 多语言网站是怎么做的交互设计网站有哪些
  • iis部署网站浏览报404建设网站公司塞尼铁克
  • 使用 PyTorch来构建线性回归的实现
  • 营销型网站设计公司企业网站模板下载服务哪家好
  • 对接物联网使用netty通信与MQTT之间的区别
  • 重塑城市公共安全管理的“智慧之眼”
  • 临海建设局官方网站plc编程入门基础知识
  • 有教做衣服的网站吗免费签名logo设计
  • 2.2.STM32-新建工程
  • 怎么做提卡密网站开发高端市场应该注意
  • 无锡网知名网站教做香肠的网站
  • 做酒招代理的网站江门网红打卡景点蓬江区
  • 双牌网站建设购物网站建设市场调查论文
  • 对象住哪里?——深入剖析 JVM 内存结构与对象分配机制
  • 站长工具高清有吗网推获客平台
  • 网站做流量的论坛贴吧广东广东网站建设工作
  • 中国机械加工网下载番禺seo
  • 如何让美颜SDK更智能?AI赋能下的个性化美颜功能设计详解
  • 软件开发模型——瀑布式模型:软件开发的经典范式及其现代实践
  • 网站集约化建设讲话上海知名的网站建设
  • WordPress建站要花钱七牛图片处理 wordpress