热门文章
 
ADO 编程模型的关键元素
ADO 对象模型目录
ADO connection
ADO connection
ADO connection
Mode 属性(Connec
AOD connection
ADO connection
Execute 方法 (AD
管理事务:BeginTran
 推荐文章
 
AOD connection
Recordset 对象
ADO事件处理程序如何协同工
ADO connection
ADO 教程:microso
ADO:Field 对象
ADO 编程模型的关键元素
ADO connection
ODBC体系结构分析
Mode 属性(Connec
通过 ADO 使用提供者
ADO connection
Command 对象的集合、
管理事务:BeginTran
返回 ADO 的版本号
OpenSchema 方法
 
你现在的位置:您现在的位置是: 中国ASP>>数据库>>ADO教程
Recordset 对象

CursorLocation 属性


指示游标服务的位置。

设置和返回值

设置或返回 Long 值,可将该值设置为一个 CursorLocationEnum 值。

说明

此属性允许在可以访问提供者的多个游标库之间选择。通常情况下,可以选择客户端游标库中的游标或者选择位于服务器上的游标。

只有在设置了属性后,此属性设置才会影响所建立的连接。更改 CursorLocation 属性不会影响现有的连接。

Execute 返回的游标继承此设置。Recordset 对象将从与它们相关联的连接上自动继承此设置。

此属性在 Connection 或已关闭的 Recordset 上为读/写,在打开的 Recordset 上为只读。

远程数据服务用法 当在客户端 Recordset 或 Connection 对象上使用时,CursorLocation 属性只能设置为 adUseClient。
表示基本表或命令执行结果的记录全集。任何时候 Recordset 都只将集合中的单个记录作为当前记录引用。


说明

用 Recordset 对象对来自提供者的数据进行操作。使用 ADO 时,将几乎全部使用 Recordset 对象来对数据进行操作。所有 Recordset 对象均由记录(行)和字段(列)组成。某些 Recordset 方法或属性可能不可用,这取决于提供者支持的功能。

ADODB.Recordset 是 ProgID,应当用它来创建 Recordset 对象。引用过期的 ADOR.Recordset ProgID 的现有应用程序将继续工作而无需重新编译,但新开发的应用程序应引用 ADODB.Recordset。

ADO 中定义了四种不同的游标类型:

动态游标 — 用于查看其他用户所作的添加、更改和删除;用于 Recordset(不依赖于书签)中的所有移动类型;如果提供者支持,还可用于书签。


键集游标 — 其行为类似动态游标,不同的只是它禁止查看其他用户添加的记录,并且禁止访问其他用户删除的记录。其他用户所作的数据更改依然可见。它始终支持书签,因此允许 Recordset 中的所有移动类型。


静态游标 — 提供记录集的静态副本,可用来查找数据或生成报告;它始终支持书签,因此允许 Recordset 中的所有移动类型。其他用户所作的添加、更改或删除将不可见。当打开客户端 Recordset 对象时,这是唯一允许的游标类型。


仅向前游标 — 只允许在 Recordset 中向前滚动。其他用户所作的添加、更改或删除将不可见。当只需要对 Recordset 进行一次传递时,可以提高性能。
打开 Recordset 之前请先设置 CursorType 属性以选择游标类型,或者用 Open 方法传递 CursorType 参数。某些提供者并不支持所有类型的游标。请检查提供者的文档。如果未指定游标类型,ADO 将默认打开仅向前游标。

如果将 CursorLocation 属性设置为 adUseClient 以打开 Recordset,则 Field 对象的 UnderlyingValue 属性在返回的 Recordset 对象中将不可用。如果与某些提供者(如 Microsoft ODBC Provider for OLE DB 和 Microsoft SQL Server)配合使用,便可用 Open 方法传递连接字符串来单独创建先前定义的 Connection 对象的 Recordset 对象。ADO 仍然创建 Connection 对象,但不将该对象分配给对象变量。但是,如果正在通过同一个连接打开多个 Recordset 对象,应显式地创建和打开 Connection 对象,由此将 Connection 对象分配给对象变量。如果打开 Recordset 对象时未使用此对象变量,那么即使传递同一个连接字符串,ADO 也将为每个新的 Recordset 创建一个新的 Connection 对象。

可以根据需要创建任意多个 Recordset 对象。

当打开 Recordset 时,当前记录位于第一个记录(如果有),BOF 和 EOF 属性设置为 False。如果没有记录,BOF 和 EOF 属性被设置为 True。

假定提供者支持相关的功能,则可以使用 MoveFirst、MoveLast、MoveNext 和 MovePrevious 方法,Move 方法,以及 AbsolutePosition、AbsolutePage 和 Filter 属性来重新定位当前记录。仅向前的 Recordset 对象只支持 MoveNext 方法。当使用 Move 方法访问每个记录(或枚举 Recordset)时,可以使用 BOF 和 EOF 属性来确定移动是否已经超出了 Recordset 的开始或结尾。

Recordset 对象支持两种类型的更新:立即更新和批更新。使用立即更新时,一旦调用 Update 方法,对数据所作的所有更改便被立即写入基本数据源。也可以用 AddNew 和 Update 方法将值的数组作为参数传递,同时更新记录中的多个字段。

如果提供者支持批更新,可以让提供者把对多个记录所作的更改存入缓存,然后用 UpdateBatch 方法在单个调用中将它们传送到数据库。这种情况适用于用 AddNew、Update 和 Delete 方法进行的更改。调用 UpdateBatch 方法之后,可以用 Status 属性检查数据冲突并加以解决。

注意 要在不使用 Command 对象的情况下执行查询,请将查询字符串传递给 Recordset 对象的 Open 方法。但是,当要持久保留并重新执行命令文本,或者要使用查询参数时,需要使用 Command 对象。

Mode 属性控制访问权限。

Fields 集合是 Recordset 对象的默认成员。因此,下面两个代码语句是等价的。

Debug.Print objRs.Fields.Item(0) ' Both statements print
Debug.Print objRs(0) ' the Value of Item(0).

CursorType 属性


指示 Recordset 对象中使用的游标的类型。

设置和返回值

设置或返回 CursorTypeEnum 值。默认值为 adOpenForwardOnly。

说明

用 CursorType 属性指定打开 Recordset 对象时使用的游标类型。

如果 CursorLocation 属性设置为 adUseClient,则只支持 adOpenStatic 设置。如果设置了不支持的值,不会产生错误,而会使用所支持的最近似的 CursorType。

如果提供者不支持请求的游标类型,它将返回另一个游标类型。当 Recordset 对象打开时,CursorType 属性将发生改变以同正在使用的实际游标类型相匹配。若要验证返回的游标的特定功能,请使用 Supports 方法。关闭 Recordset 后,CursorType 属性将恢复其初始设置。

下表说明每个游标类型所需的提供者功能(由 Supports 方法常量标识)。

针对本 CursorType 的 Recordset 对于所有这些常量,Supports 方法必须返回 True
adOpenForwardOnly 无
adOpenKeyset adBookmark、adHoldRecords、adMovePrevious 和 adResync
adOpenDynamic adMovePrevious
adOpenStatic adBookmark、adHoldRecords、adMovePrevious 和 adResync



注意 尽管对于动态游标和仅向前游标,Supports(adUpdateBatch) 可能为 True,但对于批更新还是应使用键集游标或静态游标。将 LockType 属性设置为 adLockBatchOptimistic,将 CursorLocation 属性设置为 adUseClient,以启用批更新所需的 OLE DB 的 Cursor Service。

CursorType 属性在 Recordset 关闭时为读/写,在 Recordset 打开时为只读。

远程数据服务用法 当在客户端 Recordset 对象上使用时,CursorType 属性只能设置为 adOpenStatic。


相关信息:

ADO 编程模型的关键元素
ADO 对象模型目录
ADO connection 对象包含的内容
ADO connection 对象 :ConnectionString 属性
ADO connection:ConnectionTimeout 属性
Mode 属性(Connection、Record 或 Stream)
AOD connection属性:CursorLocation DefaultDatabase IsolationLevel Provider
ADO connection 对象 :open和close方法

 

中国ASP技术 ASP.ORG.CN 版权所有 2004-2008