ADO 打开 方法
❮ 完整 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 |
乐观锁定,逐记录锁定。提供程序仅在调用更新时锁定记录 |
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 的流中打开 Recordset,则 adAsyncFetchNonBlocking 将不起作用;操作将是同步和阻塞的。当使用 adCmdTableDirect 选项打开 Recordset 时,adAsynchFetchNonBlocking 不会产生任何影响 |
adExecuteNoRecords |
128 |
命令文本是一个不返回行的命令或存储过程。如果检索到任何行,则将丢弃它们并且不会返回。adExecuteNoRecords 只能作为 Command 或 Connection Execute 方法的可选参数传递 |
adExecuteStream |
256 |
命令执行的结果应作为流返回。adExecuteStream 只能作为 Command Execute 方法的可选参数传递 |
adExecuteRecord |
512 |
CommandText 是一个返回单行的命令或存储过程,该行应作为 Record 对象返回 |
❮ 完整 Recordset 对象参考
W3schools Pathfinder
Track your progress - it's free!