Save 方法

Recordset 保存在文件或 Stream 对象中。

语法

  
recordset.Save Destination, PersistFormat  

参数

目标
可选。 一个 Variant,表示保存 Recordset 的文件的完整路径名,或对 Stream 对象的引用。

PersistFormat
可选。 PersistFormatEnum 值,该值指定要保存 Recordset 的格式(XML 或 ADTG)。 默认值为 adPersistADTG。

备注

Save 方法只能在打开的 Recordset 上调用。 使用 Open 方法 (ADO Recordset) 稍后从 Destination 还原 Recordset。

如果 Filter 属性对 Recordset 有效,则仅保存筛选器下可访问的行。 如果 Recordset 是分层的,则保存当前子 Recordset 及其子级,包括父 Recordset。 如果调用子 Recordset 的 Save 方法,则会保存该子 Recordset 及其所有子级,但不会保存父 Recordset。

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

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

Save 不会关闭 Recordset 或 Destination,因此可以继续使用 Recordset 并保存最近的更改。 Destination 会保持打开状态,直到 Recordset 关闭。

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

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

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

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

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

注意

ADO 不支持使用类型为 adVariant、adIDispatch 或 adIUnknown 的 Fields 保存 Recordset,并可能导致不可预知的结果。

只有条件字符串形式的筛选器(例如 OrderDate >“12/31/1999”)才会影响持久化 Recordset 的内容。 使用书签数组创建的筛选器或使用 FilterGroupEnum 中的值不会影响持久化 Recordset 的内容。 这些规则适用于使用客户端游标或服务器端游标创建的 Recordset。

由于 Destination 参数可以接受任何支持 OLE DB IStream 接口的对象,因此可以将 Recordset 直接保存到 ASP Response 对象中。 有关详细信息,请参阅 XML Recordset 持久性方案

也可以将 Recordset 以 XML 格式保存到 MSXML DOM 对象的实例,如以下 Visual Basic 代码所示:

Dim xDOM As New MSXML.DOMDocument  
Dim rsXML As New ADODB.Recordset  
Dim sSQL As String, sConn As String  
  
sSQL = "SELECT customerid, companyname, contactname FROM customers"  
sConn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Northwind.mdb"  
rsXML.Open sSQL, sConn  
rsXML.Save xDOM, adPersistXML   'Save Recordset directly into a DOM tree.  
...  

注意

将分层 Recordset(数据形状)以 XML 格式保存时存在两个限制。 如果分层 Recordset 包含挂起的更新,则无法保存到 XML,并且无法保存参数化的分层 Recordset。

使用 UTF-8 格式保存以 XML 格式保存的 Recordset。 将此类文件加载到 ADO Stream 中时,除非流的 Charset 属性设置为 UTF-8 格式的相应值,否则 Stream 对象不会尝试从流中打开 Recordset。

应用于

另请参阅

Save 和 Open 方法示例 (VB)
Save 和 Open 方法示例 (VC++)
Open 方法(ADO 记录集)
Open 方法(ADO 流)
SaveToFile 方法