ADO Open 方法


❮ 完整的 Recordset 记录集对象参考

Open 方法打开一个数据库元素,让您可以访问表中的记录、查询结果或保存的 Recordset。

提示: 在使用 Recordset 对象后始终关闭它,以释放系统资源。 将 Recordset 对象设置为 Nothing 以将其从内存中完全清除。

语法

objRecordset.Open source,actconn,cursortyp,locktyp,opt

参数 描述
source 可选的。 指定数据源。源参数可以是以下之一:
  • 网址
  • 相对/完整的文件路径名
  • 一个命令对象
  • 一条 SQL 语句
  • 存储过程
  • 表名
actconn 可选。 连接字符串或 Connection 对象
cursortyp 可选。 CursorTypeEnum 值,指定打开 Recordset 对象时要使用的游标类型。默认为 adOpenForwardOnly
locktyp 可选。 LockTypeEnum 值,指定 Recordset 对象上的锁定类型。 默认为 adLockReadOnly
opt 可选。 如果源参数不是 Command 对象,则指定如何计算它。 可以是一个或多个 CommandTypeEnum ExecuteOptionEnum 值。

实例

打开 ADO 表记录集:

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "Customers", conn
%>

打开 ADO SQL 记录集:

<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/webdata/northwind.mdb"
set rs = Server.CreateObject("ADODB.recordset")
rs.Open "Select * from Customers", conn
%>

CursorTypeEnum 值

常量 描述
adOpenUnspecified -1 未指定类型的光标
adOpenForwardOnly 0 默认。 只进游标。 当您只需要通过 Recordset 一次时,这会提高性能
adOpenKeyset 1 键集游标。 与动态游标类似,只是您看不到其他用户添加的记录,尽管其他用户删除的记录无法从您的 Recordset 中访问。 其他用户的数据更改仍然可见。
adOpenDynamic 2 动态游标。其他用户的添加、更改和删除都是可见的,并且允许通过 Recordset 进行所有类型的移动
adOpenStatic 3 一个静态游标。 一组记录的静态副本,可用于查找数据或生成报告。 其他用户的添加、更改或删除不可见。

LockTypeEnum 值

常量 描述
adLockUnspecified -1 未指定类型的锁。 克隆从原始 Recordset 继承锁类型。
adLockReadOnly 1 默认。 只读记录
adLockPessimistic 2 悲观锁定,逐条记录。 编辑后立即提供者锁定记录
adLockOptimistic 3 乐观锁定,逐条记录。 仅在调用更新时提供程序锁定记录
adLockBatchOptimistic 4 乐观的批量更新。 批量更新模式需要

CommandTypeEnum 值

常量 描述
adCmdUnspecified -1 未指定类型的命令
adCmdText 1 将 CommandText 评估为命令或存储过程调用的文本定义
adCmdTable 2 将 CommandText 计算为一个表名,其列由 SQL 查询返回
adCmdStoredProc 4 将 CommandText 计算为存储过程名称
adCmdUnknown 8 默认。未知类型的命令
adCmdFile 256 将 CommandText 计算为永久存储的 Recordset 的文件名。仅与 Recordset 一起使用。Open 或 Requery。
adCmdTableDirect 512 将 CommandText 计算为一个表名,其列全部返回。与 Recordset 一起使用。仅打开或 Requery。要使用 Seek 方法,必须使用 adCmdTableDirect 打开 Recordset。不能与 ExecuteOptionEnum 值 adAsyncExecute 结合使用。

ExecuteOptionEnum 值

常量 描述
adOptionUnspecified -1 未指定的命令
adAsyncExecute 16 命令应该异步执行。不能与 CommandTypeEnum 值 adCmdTableDirect 结合使用
adAsyncFetch 32 在 CacheSize 属性中指定的初始数量之后的剩余行应该异步检索
adAsyncFetchNonBlocking 64 主线程在检索时从不阻塞。如果请求的行还没有被检索到,当前行自动移动到文件的末尾。如果从包含持久存储的 Recordset 的 Stream 中打开 Recordset,adAsyncFetchNonBlocking 将不起作用;该操作将是同步和阻塞的。使用 adCmdTableDirect 选项打开 Recordset 时 adAsynchFetchNonBlocking 无效
adExecuteNoRecords 128 命令文本是不返回行的命令或存储过程。如果检索到任何行,它们将被丢弃并且不会返回。adExecuteNoRecords 只能作为可选参数传递给 Command 或 Connection Execute 方法
adExecuteStream 256 命令执行的结果应该作为流返回。 adExecuteStream 只能作为可选参数传递给 Command Execute 方法
adExecuteRecord 512 CommandText 是一个命令或存储过程,它返回应作为 Record 对象返回的单行

❮ 完整的 Recordset 记录集对象参考