ADO Open 方法
❮ 完整的 Recordset 对象参考
Open 方法打开一个数据库元素,该元素使您可以访问表中的记录、查询的结果或已保存的 Recordset。
提示: 使用完 Recordset 对象后,请务必关闭它以释放系统资源。将 Recordset 对象设置为 Nothing 以将其完全从内存中删除。
语法
objRecordset.Open source,actconn,cursortyp,locktyp,opt
参数 |
描述 |
source |
可选。指定数据源。source 参数可以是以下之一:
- URL
- 相对/完整的文件路径名
- Command 对象
- SQL 语句
- 存储过程
- 表名
|
actconn |
可选。连接字符串或 Connection 对象 |
cursortyp |
可选。一个 CursorTypeEnum 值,指定打开 Recordset 对象时使用的光标类型。默认为 adOpenForwardOnly |
locktyp |
可选。一个 LockTypeEnum 值,指定 Recordset 对象上的锁定类型。默认为 adLockReadOnly |
opt |
可选。指定如何评估 source 参数(如果它不是 Command 对象)。可以是多个 CommandTypeEnum 或 ExecuteOptionEnum 值中的一个或多个。 |
示例
打开 ADO 表 Recordset
<%
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 Recordset
<%
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 |
乐观锁定,逐条记录。提供商仅在调用 update 时锁定记录 |
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.Open 或 Requery 一起使用。要使用 Seek 方法,Recordset 必须以 adCmdTableDirect 打开。不能与 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 对象参考
W3schools 学习路径
跟踪您的进度 - 免费!