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 记录集对象参考