VB6,VBA保存ADO记录集并重新加载更新adPersistADTG

便携式计算(例如,使用笔记本电脑)催生了对可以同时在连接和断开状态下运行的应用程序的需求。 ADO 增加了这方面的支持,使开发人员能够将客户端游标 Recordset 保存到磁盘并稍后重新加载。

有多种场景可以使用这种类型的功能,包括:

  • 旅行:在路上使用应用程序时,提供更改和添加新记录的功能至关重要,这些记录随后可以重新连接到数据库并提交。

  • 不经常更新的查找:在应用程序中,通常使用表作为查找,例如,州税表。 它们不经常更新,并且是只读的。 无需在每次应用程序启动时从服务器重新读取数据,应用程序只需从本地持久保存的 Recordset 加载数据。

在 ADO 中,若要保存和加载 Recordets,请在 ADO Recordset 对象上使用 Recordset.Save 和 Recordset.Open(,,,,adCmdFile) 方法。

可以使用 Recordset Save 方法将 ADO Recordset 保存到磁盘上的文件中。 (还可以将 Recordset 保存到 ADO Stream 对象。Stream 对象稍后将在本指南中讨论)稍后,可以使用 Open 方法在准备使用 Recordset 时重新打开它。 默认情况下,ADO 将 Recordset 保存为专有的 Microsoft Advanced Data TableGram (ADTG) 格式。 此二进制格式使用 adPersistADTG PersistFormatEnum 值指定。 或者,可以选择使用 adPersistXML 将 Recordset 保存为 XML。 有关将 Recordsets 保存为 XML 的详细信息,请参阅以 XML 格式保存记录。

Save 方法的语法如下:

复制

  
recordset.  
Save  
Destination, PersistFormat  

首次保存 Recordset 时,可以选择指定 Destination。 如果省略 Destination,则会创建一个新文件,其名称设置为 Recordset 的 Source 属性的值。

在首次保存后调用 Save 时省略 Destination,否则将发生运行时错误。 如果随后使用新 Destination 调用 Save,则 Recordset 将保存到新目标。 但是,新目标和原始目标都将打开。

Save 不会关闭 Recordset 或 Destination,因此可以继续使用 Recordset 并保存最近的更改。 Destination 保持打开状态,直到 Recordset 关闭,在此期间,其他应用程序可以读取但不写入 Destination。

出于安全考虑,Save 方法只允许使用 Microsoft Internet Explorer 执行的脚本中的低安全设置和自定义安全设置。

当异步 Recordset 提取、执行或更新操作正在进行时,如果调用 Save 方法,则 Save 将等待异步操作完成。

记录从 Recordset 的第一行开始保存。 Save 方法完成后,当前行位置将移动到 Recordset 的第一行。

为了获得最佳结果,请使用 Save 将 CursorLocation 属性设置为 adUseClient。 如果提供程序不支持保存 Recordset 对象所需的全部功能,游标服务将提供该功能。

当持久保存 Recordset,并且 CursorLocation 属性被设置为 adUseServer 时,Recordset 的更新功能会受限制。 通常,仅允许单表更新、插入和删除(取决于提供程序功能)。 Resync 方法在此配置中也不可用。

由于 Destination 参数可以接受任何支持 OLE DB IStream 接口的对象,因此可以将 Recordset 直接保存到 ASP Response 对象中。

在以下示例中,Save 和 Open 方法用于保存 Recordset 并稍后重新打开它


'BeginPersist  conn.ConnectionString = _  "Provider=SQLOLEDB;Data Source=MySQLServer;" _  & "Integrated Security=SSPI;Initial Catalog=pubs"  conn.Open  conn.Execute "create table testtable (dbkey int " & _  "primary key, field1 char(10))"  conn.Execute "insert into testtable values (1, 'string1')"  Set rst.ActiveConnection = conn  rst.CursorLocation = adUseClient  rst.Open "select * from testtable", conn, adOpenStatic, _  adLockBatchOptimistic  'Change the row on the client  rst!field1 = "NewValue"  'Save to a file--the .dat extension is an example; choose  'your own extension. The changes will be saved in the file  'as well as the original data.  MyFile = Dir("c:\temp\temptbl.dat")  If MyFile <> "" Then  Kill "c:\temp\temptbl.dat"  End If  rst.Save "c:\temp\temptbl.dat", adPersistADTG  Set rst = Nothing  'Now reload the data from the file  Set rst = New ADODB.Recordset  rst.Open "c:\temp\temptbl.dat", , adOpenStatic, _  adLockBatchOptimistic, adCmdFile  Debug.Print "After Loading the file from disk"  Debug.Print "   Current Edited Value: " & rst!field1.Value  Debug.Print "   Value Before Editing: " & rst!field1.OriginalValue  'Note that you can reconnect to a connection and  'submit the changes to the data source  Set rst.ActiveConnection = conn  rst.UpdateBatch  
'EndPersist

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/619945.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Redis面试题13

Redis 的发布订阅&#xff08;Pub/Sub&#xff09;模式是什么&#xff1f; Redis 的发布订阅模式允许多个客户端订阅一个频道&#xff0c;当消息被发布到该频道时&#xff0c;所有订阅该频道的客户端都会收到该消息。Redis 的发布订阅模式分为两个角色&#xff1a;发布者和订阅…

K8S Nginx Ingress Controller client_max_body_size 上传文件大小限制

现象 k8s集群中&#xff0c;上传图片时&#xff0c;大于1M就会报错 413 Request Entity Too Large Nginx Ingress Controller 的版本是 0.29.0 解决方案 1. 修改configmap kubectl edit configmap nginx-configuration -n ingress-nginx在 ConfigMap 的 data 字段中设置参数…

Zabbix监控系统及部署

目录 前言 一个完整的项目 业务架构 运维架构 优秀监控软件的好处 1.zabbix概述 zabbix是什么 zabbix监控原理 Zabbix6.0新特性 1.Zabbix server高可用防止硬件故障或计划维护期的停机 2.Zabbix6.0 LTS新增Kubernetes监控功能&#xff0c;可以在Kubernetes系统从多个…

JS中的File(一):Blob对象详解

一、定义 Blob是一个装着二进制数据的容器对象。Blob 对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取&#xff0c;也可以转换成 ReadableStream 来用于数据操作。 二、属性 size&#xff1a;只读属性&#xff0c;Blob中的字节数type&…

前端工程化相关

工具方法&#xff1a; 知道软件包名&#xff0c;拿到源码或者路径的方法 在浏览器输入以下内容&#xff0c;就可以找到你想要的。。。 unpkg.com/输入包名 一、模块化 ESM特性清单&#xff1a; 自动采取严格模式&#xff0c;忽略“use strict”每个ESM模块都是单独的私有作用…

nSum的java解法

两数之和 1. 两数之和 - 力扣&#xff08;LeetCode&#xff09; 可以使用哈希表的方法来解决 如果哈希表中不存在 target - a 这个元素&#xff0c;将这个元素值座位 key&#xff0c;下标作为 value 加入到哈希表中如果存在&#xff0c;返回两个元素的下标即可如果遍历到数组…

网络——华为与华三

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 公众号&#xff1a;网络豆云计算学堂 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a; 网络豆的主页​​​​​ 写在前面 大家好&#xff0c;我是网络豆&#xff0…

Elasticsearch:是时候离开了! - 在 Elasticsearch 文档上使用 TTL

作者&#xff1a;来自 Elastic David Pilato 想象一下&#xff0c;圣诞老人必须向世界上所有的孩子们分发礼物。 他有很多工作要做&#xff0c;他需要保持高效。 他有一份所有孩子的名单&#xff0c;并且知道他们住在哪里。 他很可能会将礼物按区域分组&#xff0c;然后再交付。…

docker部署ng实现反向代理

场景 按规定尽可能减少开放到外网的端口&#xff0c;所以需要将多个服务部署到一个ip一个端口上。 方案 使用ng实现请求转发。根据http请求中的host与ng配置文件中的server_name匹配&#xff0c;转发到对应的机器上。 在docker上部署三个容器&#xff0c;每个容器中启动一个…

Java内存模型之可见性

文章目录 1.什么是可见性问题2.为什么会有可见性问题3.JMM的抽象&#xff1a;主内存和本地内存3.1 什么是主内存和本地内存3.2 主内存和本地内存的关系 4.Happens-Before原则4.1 什么是Happens-Before4.2 什么不是Happens-Before4.3 Happens-Before规则有哪些4.4 演示&#xff…

【SQL注入】SQLMAP v1.7.11.1 汉化版

下载链接 【SQL注入】SQLMAP v1.7.11.1 汉化版 简介 SQLMAP是一款开源的自动化SQL注入工具&#xff0c;用于扫描和利用Web应用程序中的SQL注入漏洞。它在安全测试领域被广泛应用&#xff0c;可用于检测和利用SQL注入漏洞&#xff0c;以验证应用程序的安全性。 SQL注入是一种…

调试(c语言)

前言&#xff1a; 我们在写程序的时候可能多多少少都会出现一些bug&#xff0c;使我们的程序不能正常运行&#xff0c;所以为了更快更好的找到并修复bug&#xff0c;使这些问题迎刃而解&#xff0c;学习好如何调试代码是每个学习编程的人所必备的技能。 1. 什么是bug&#xf…

UOS cryptsetup详细使用方法

1. 格式化为LUKS加密卷 格式化磁盘或分区为LUKS格式。这一步将清除所有现有数据&#xff0c;并设置一个新的加密密钥&#xff08;密码&#xff09;。 sudo cryptsetup luksFormat /dev/sdX其中 /dev/sdX 是要加密的磁盘或分区的路径。 2. 打开&#xff08;解锁&#xff09;加…

Java项目:06 Springboot的进销存管理系统

作者主页&#xff1a;舒克日记 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 进销存管理系统 介绍 进销存系统是为了对企业生产经营中进货、出货、批发销售、付款等全程进行&#xff08;从接获订单合同开 始&#xff0c;进入物料采购、入…

浅析Linux进程地址空间

前言 现代处理器基本都支持虚拟内存管理&#xff0c;在开启虚存管理时&#xff0c;程序只能访问到虚拟地址&#xff0c;处理器的内存管理单元&#xff08;MMU&#xff09;会自动完成虚拟地址到物理地址的转换。基于虚拟内存机制&#xff0c;操作系统可以为每个运行中的进程创建…

ros2+gazebo(ign)激光雷达+摄像头模拟

虽然ign不能模拟雷达&#xff0c;但是摄线头是可以模拟的。 好了现在都不用模拟了&#xff0c;ign摄线头也模拟不了。 ros2ign gazebo无法全部模拟摄线头和雷达。 只能有这样2个解决方法&#xff1a; 方法1&#xff1a;使用ros2 gazebo11 方案2&#xff1a;使用ros2买一个实…

一系列实用工具、编程工具和学习网站推荐

其他工具&#xff1a; 十分钟临时邮箱&#xff1a;https://www.linshi-email.com/Chrome极简插件&#xff1a;https://chrome.zzzmh.cn/#/indexPc桌面静态壁纸&#xff1a;https://ss.netnr.com/wallpaperProcessOn在线画图&#xff1a;https://www.processon.com/ 编程工具&a…

【问题探讨】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究

目录 主要内容 模型研究 结果一览 下载链接 主要内容 该模型以环境保护成本和运行成本为双目标构建了微电网优化调度模型&#xff0c;模型目标函数和约束条件复现文献《基于改进粒子群算法的微电网多目标优化调度》&#xff0c;程序的特点是采用非支配排序的蜣螂…

Redis缓存使用问题

数据一致性 只要使用到缓存,无论是本地内存做缓存还是使用 redis 做缓存,那么就会存在数据同步的问题。 以 Tomcat 向 MySQL 中写入和删改数据为例,来解释数据的增删改操作具体是如何进行的。 我们分析一下几种解决方案, 1、先更新缓存,再更新数据库 2、先更新数据库,…

2023年第十四届中国数据库技术大会(DTCC2023):核心内容与学习收获(附大会核心PPT下载)

随着信息化时代的深入发展&#xff0c;数据库技术作为支撑信息化应用的核心技术&#xff0c;其重要性日益凸显。本次大会以“数据价值&#xff0c;驱动未来”为主题&#xff0c;聚焦数据库领域的前沿技术与最新动态&#xff0c;吸引了数千名业界专家、企业代表和数据库技术爱好…