Open 方法 (ADO Recordset)
在 Recordset 对象上打开光标。
语法
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
参数
源
自选。
Variant,其计算结果为有效的 Command 对象、SQL 语句、表名称、存储过程调用、URL 或包含持久存储 Recordset的文件或 Stream 对象的名称。
ActiveConnection
自选。
Variant,该变量的计算结果为有效的 连接 对象变量名称,或包含 ConnectionString 参数的 String。
CursorType
自选。
CursorTypeEnum 值,该值确定提供程序在打开 Recordset时应使用的游标的类型。 默认值为 adOpenForwardOnly 。
LockType
自选。
LockTypeEnum 值,该值确定打开 Recordset时提供程序应使用的锁定类型(并发)。 默认值 adLockReadOnly。
选项
自选。
Long 值,该值指示提供程序应如何计算 Source 参数(如果它表示 Command 对象以外的内容),或者应从以前保存的文件中还原 Recordset。 可以是一个或多个 CommandTypeEnum 或 ExecuteOptionEnum 值,这些值可以与按位 OR 运算符组合。
注意
如果从包含持久化 Recordset的 Stream 打开 Recordset,则使用 ExecuteOptionEnum 值为 adAsyncFetchNonBlocking 将不起作用;提取将是同步和阻塞的。
注意
adExecuteNoRecords 或 adExecuteStream 的 ExecuteOpenEnum 值不应与 Open一起使用。
言论
ADO Recordset 的默认游标是位于服务器上的只读只读游标。
在 Recordset 对象上使用 Open 方法可打开一个游标,该游标表示基表、查询结果或以前保存的记录集 记录集。
使用可选的 Source 参数使用以下选项之一指定数据源:Command 对象变量、SQL 语句、存储过程、表名称、URL 或完整的文件路径名称。 如果 源 是文件路径名称,它可以是完整路径(“c:\dir\file.rst”),相对路径(“..\file.rst“或 URL(https://files/file.rst
)。
最好使用 Open 方法的 Source 参数来执行不返回记录的操作查询,因为无法轻松确定调用是否成功。 将关闭此类查询返回的 Recordset。 若要执行不返回记录(如 SQL INSERT 语句)的查询,请改为调用 Command 对象的 Execute 方法或 Connection 对象的 Execute 方法。
ActiveConnection 参数对应于 ActiveConnection 属性,并指定打开 Recordset 对象的连接。 如果传递此参数的连接定义,ADO 将使用指定的参数打开一个新连接。 通过将 CursorLocation 属性设置为 adUseClient,可以使用客户端游标打开 Recordset 后,可以更改此属性的值以将更新发送到另一个提供程序。 或者,可以将此属性设置为 Nothing(在 Microsoft Visual Basic 中)或 NULL,以断开 Recordset 与任何提供程序的连接。 但是,更改服务器端游标 ActiveConnection 会产生错误。
对于直接对应于 Recordset 对象的属性的其他参数(Source、CursorType和 LockType),参数与属性之间的关系如下所示:
在打开 Recordset 对象之前,该属性是可读/写的。
除非在执行 Open 方法时传递相应的参数,否则将使用属性设置。 如果传递参数,它将替代相应的属性设置,并使用参数值更新属性设置。
打开 Recordset 对象后,这些属性将变为只读。
注意
ActiveConnection 属性对于 Recordset 对象是只读的,Source 属性设置为有效的 Command 对象,即使 Recordset 对象未打开也是如此。
如果在 Source 参数中传递 Command 对象,同时传递 ActiveConnection 参数,则会发生错误。 Command 对象的 ActiveConnection 属性必须已设置为有效的 连接 对象或连接字符串。
如果在 Source 参数中传递 Command 对象以外的内容,则可以使用 Options 参数来优化 Source 参数的计算。 如果未定义 Options 参数,则可能会遇到性能下降,因为 ADO 必须调用提供程序来确定参数是否为 SQL 语句、存储过程、URL 或表名称。 如果知道所使用的 源 类型,设置 Options 参数将指示 ADO 直接跳转到相关代码。 如果 Options 参数与源 类型 不匹配,则会发生错误。
如果在源 参数 中传递 Stream 对象,则不应将信息传递到其他参数中。 这样做将生成错误。 从 Stream打开 Recordset 时,不会保留 ActiveConnection 信息。
Options 参数的默认值为 adCmdFile(如果没有与 Recordset关联的连接)。 这通常是持久存储 Recordset 对象的情况。
如果数据源不返回任何记录,则提供程序会将 BOF 和 EOF 属性设置为 True,并且当前记录位置未定义。 如果游标类型允许,仍可以将新数据添加到此空 Recordset 对象。
通过打开的 Recordset 对象结束操作后,请使用 Close 方法释放任何关联的系统资源。 关闭对象不会将其从内存中删除;可以更改其属性设置,并使用 Open 方法稍后再次打开它。 若要完全消除内存中的对象,请将对象变量设置为 Nothing。
在设置 ActiveConnection 属性之前,调用 Open,不带操作数,以创建 Recordset 实例,方法是将字段追加到 RecordsetFields 集合。
如果已将 CursorLocation 属性设置为 adUseClient,则可以采用以下两种方式之一异步检索行。 建议的方法是将 Options 设置为 adAsyncFetch。 或者,可以使用 Properties 集合中的“异步行集处理”动态属性,但如果未将 Options 参数设置为 adAsyncFetch,则相关的检索事件可能会丢失。
注意
仅通过 Open 方法的 Options 参数支持 MS 远程提供程序中的后台提取。
注意
使用 http 方案的 URL 将自动调用 Microsoft OLE DB Provider for Internet Publishing。 有关详细信息,请参阅 绝对 URL 和相对 URL。
CommandTypeEnum 和 ExecuteOptionEnum 值的某些组合无效。 有关无法组合哪些选项的信息,请参阅 ExecuteOptionEnum的主题,以及 CommandTypeEnum。
适用于
另请参阅
Open 和 Close 方法示例 (VB)
Open 和 Close 方法示例 (VBScript)
Open 和 Close 方法示例(VC++)
保存和打开方法示例 (VB)
Open 方法(ADO 连接)
Open 方法(ADO 记录)
Open 方法(ADO 流)
OpenSchema 方法
Save 方法