recordset对象代表一个表的记录集或者命令执行的结果

上传人:自*** 文档编号:79718892 上传时间:2019-02-17 格式:DOC 页数:23 大小:290.30KB
返回 下载 相关 举报
recordset对象代表一个表的记录集或者命令执行的结果_第1页
第1页 / 共23页
recordset对象代表一个表的记录集或者命令执行的结果_第2页
第2页 / 共23页
recordset对象代表一个表的记录集或者命令执行的结果_第3页
第3页 / 共23页
recordset对象代表一个表的记录集或者命令执行的结果_第4页
第4页 / 共23页
recordset对象代表一个表的记录集或者命令执行的结果_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《recordset对象代表一个表的记录集或者命令执行的结果》由会员分享,可在线阅读,更多相关《recordset对象代表一个表的记录集或者命令执行的结果(23页珍藏版)》请在金锄头文库上搜索。

1、Recordset 对象代表一个表的记录集或者命令执行的结果,在记录集中,总是有一个当前的记录。记录集是ADO 管理数据的基本对象,所有的Recordset 对象都按照行列方式的表状结构进行管理,每一行对应一个记录(Record ) ,每一列对应一个域(F ield )。Recordset 对象也通过游标对记录进行访问,在ADo 中,游标分四不中:a 静态游标。提供对数据集的一个静态拷贝,允许各种移动操作,包括前移、后移等等,但其他用户所做的操作反映不出来。b 动态游标。允许各种移动操作,包括前移、后移等等,并且其他用户所做的操作也可以直接反映出来。c 前向游标。允许各种前向移动操作,不能向后

2、移动,并且其他用户所做的操作也可以直接反映出来。d 键集(keyset )游标。类似于动态游标,也能够看到其他用户所作的数据修改,但不能看到其它用户新加的记录,也不能访问其他用户删除的记录。ADO 中定义了四种不同的游标类型: 动态游标 用于查看其他用户所作的添加、更改和删除;用于 Recordset(不依赖于书签)中的所有移动类型;如果提供者支持,还可用于书签。键集游标 其行为类似动态游标,不同的只是它禁止查看其他用户添加的记录,并且禁止访问其他用户删除的记录。其他用户所作的数据更改依然可见。它始终支持书签,因此允许 Recordset 中的所有移动类型。静态游标 提供记录集的静态副本,可用

3、来查找数据或生成报告;它始终支持书签,因此允许 Recordset 中的所有移动类型。其他用户所作的添加、更改或删除将不可见。当打开客户端 Recordset 对象时,这是唯一允许的游标类型。仅向前游标 只允许在 Recordset 中向前滚动。其他用户所作的添加、更改或删除将不可见。当只需要对 Recordset 进行一次传递时,可以提高性能。 针对本 CursorType 的 Recordset 对于所有这些常量,Supports 方法必须返回 True adOpenForwardOnly 无 adOpenKeyset adBookmark、adHoldRecords、adMovePrev

4、ious 和 adResync adOpenDynamic adMovePrevious adOpenStatic adBookmark、adHoldRecords、adMovePrevious 和 adResync 指定在编辑过程中记录上的锁定类型。常量 值 说明 adLockBatchOptimistic 4 指示开放式批更新。需要批更新模式。 adLockOptimistic 3 指示逐个记录开放式锁定。提供者使用开放式锁定,仅在调用 Update 方法时锁定记录。 adLockPessimistic 2 指示逐个记录保守式锁定。提供者要确保记录编辑成功,通常在编辑之后立即在数据源锁定记

5、录。 adLockReadOnly 1 指示只读记录。无法改变数据。 adLockUnspecified -1 未指定锁定类型。创建副本时,副本与源对象使用相同的锁定类型。 游标服务是数据访问的重要内容,在第二部分介绍Recordset 对象时,我们说明了游标的四种类型,在Recordset 对象还有一个属性CursorLocation 用于指定游标的位置,我们可以指定使用客户端的游标,也可以指定使用服务器端游标。CursorLocation 属性的缺省值为adUseserver ,使用服务器端游标的好处是,程序对数据库的修改可以立即反映到服务器,而且,其他用户对数据库的操作也可以马上反映出来

6、,但使用服务器端游标带来了高网络流量,每一个数据访问都需要通过网络交换数据。ADO 提供了客户端数据缓存处理,因此,在打开Recordset 对象前,可以设置CursorLocation 为adUseClient ,指定使用客户端游标。通过客户端游标,ADO 利用本地数据缓存以降低网络流量,虽然在数据访问灵活性上有所损失,但却大大提高了通过网络访问数据库的性能。批修改处理。我们知道Recordset 对象的update 方法用于修改当前记录,而updateBatch 方法则用于递交所有对当前记录集的增、删、改操作。把Recordset 对象的LockTyPe 属性设置为adLockBatcho

7、ptimistic ,则updateBatch 方法有效,当然,不同的oLE DB 提供者可能还会有不同的要求,比如,sQL server 提供者也要求游标类型为键集游标或静态游标。UpdateBatch 方法可以一次把客户端所有的修改传送到数据库中,相对应地,也可以调用CancelBatch 方法取消所有的修改操作说一下Recordset 对象的属性1、CursorType 属性AdOpenForwardOnly: 仅向前游标,默认值。除了只能在记录中向前滚动外,与静态游标相同。当只需要在记录集中单向移动时,使用它可提高性能。(顾名思义,这种游标只能向前移动。然而,由于这种游标功能有限,将它

8、用于系统资源时是非常有效的。) AdOpenKeyset: 键集游标。尽管从您的记录集不能访问其他用户删除的记录,但除无法查看其他用户添加的记录外,键集游标与动态游标相似。仍然可以看见其他用户更改的数据。(KeySet游标允许你看见自它创建起其他用户所做的修改,然而你却不能看到其他用户增加或删除的记录。)AdOpenDynamic :动态游标。可以看见其他用户所作的添加、更改和删除。允许在记录集中进行所有类型的移动,但不包括提供者不支持的书签操作。(此类型的游标功能强大同时也是耗费系统资源最多的游标。Dynamic游标可以看到他们保存记录集合的所有变化。使用Dynamic游标的用户可以看到其他

9、用户所做的编辑、增加、删除。如果数据提供者允许这种类型的游标,那么它是通过每隔一段时间从数据源重取数据来支持这种可视性的。毫无疑问这会需要很多的资源。) AdOpenStatic:静态游标。可以用来查找数据或生成报告的记录集合的静态副本。另外,对其他用户所作的添加、更改或删除不可见。(Static类游标只是数据的一幅快照。这就是说,它无法看到自它创建以后其他用户对RecordSet所做的修改。采用这类游标你可以向前和向后航行。由于其功能简单,资源的需求比Dynamic要小! ) 需要注意的是:一旦打开RecordSet,你就无法改变CursorType属性。但是,如果你首先关闭RecordSe

10、t,改变CursorType属性,然后重新打开RecordSet,那么你仍可以有效地改变游标的类型! 2、LockType 属性在任何同时可被多用户修改的数据库应用程序中,你必须处理可能发生的多个用户同时对同一条记录进行操作时的情况。当这种情况出现时,数据的完整性就会受到威胁,这是因为一个用户可能会在不自觉地在保存自己所做的修改时覆盖他人的修改。到时候你会觉得自己好象是没有做事。为了处理这种情况。ADO允许你在对RecordSet对象进行更新时决定并发事件控制的类型,当一个用户编辑时,如何由他对记录进行锁定。这就是由LockType属性所决定的。这个属性有四个值:adLockReadonly:

11、默认值,只读。无法更改数据。(这是RecodSet的默认值,如果你把锁定的方式设为该值,那么你将不能更新 Recordset。)adLockPessimistic:保守式记录锁定(逐条)。提供者执行必要的操作确保成功编辑记录,通常采用编辑时立即锁定数据源的记录的方式。(如果设置为此类锁定,记录被锁定,且只有在编辑开始到将记录更新的提交给数据提供者这段时间内进行编辑的用户才可以访问! )adLockOptimistic:开放式记录锁定(逐条)。提供者使用开放式锁定,只在调用 Update 方法时锁定记录。(只有在将数据提交给数据提供者的那一瞬间才把记录锁定。)adlockBatchOptimis

12、tic:开放式批更新。用于与立即更新模式相反的批更新模式。(设定为这种类型的锁定制式将被称为批量更新模式的RecordSet。 可以加快更新RecordSet修改数据的速度,但因为同时更新多个记录,它也会恶化与并发访问相关的问题!)vb数据库编程(一)-记录集Recordset 标签: 记录 方法 记录集 移动 属性 2006-09-10 20:26记录集是从数据库中按一定查询条件读入到内存中的一批记录,以供快速的操作。记录集recordset对象的属性,方法:BOF:当记录集记录指针指到起始记录(第1条记录)再向前移(即超过第1条记录),这时返回true.常用来对付一些出错情况。注:在BOF

13、或EOF时使用update方法会出错。EOF:当记录指针指到最后一条记录之后(即超过了最后1条记录)时,该属性返回true.注:当一个记录集为空时,其BOF和EOF属性都为True,可据此检测一个记录集是否为空。AbsolutePosition:返回当前记录指针,即当前记录是第几条记录,只读。BookMark: 设置/返回当前记录指针的书签,为字符串。如:在当前记录处设置书签:lxn=Adodc1.Recordset.BookMark当指针移动后回到指定书签位置:Adodc1.Recordset.BookMark=lxn.返回记录集中记录的总数:RecordCount属性。该属性对于表形式的记

14、录集将返回精确数目,但对于仅向前型记录集(adOpenForwardOnly),返回-1。动态记录集(adOpenDynamic)则不一定,可能返回-1,与记录集的CursorLocation有关;而对于静态记录集(adOpenStatic),也总能返回精确数目。附:在DAO中,对动态集和快照集需要先用MoveFirst和Movelast方法,再用RecordCount取得记录精确数目。Move方法:移动记录集指针。该方法有两个参数,第一个参数指定要向前或向后移动多少条记录,第二个参数指定一个相对书签位置,表明从当前记录还是从第1条或最后1条记录开始算,缺省为0从当前记录开始移,将指针从当前位

15、置向前(负数)或向后(正数)移动指定条记录(第二个按书签移动参数设为0-adBookMarkCurrent从当前记录开始,缺省)或将指针从第1条记录算起移动指定条记录(第二个参数设为1-adBookMarkFirst从首记录)。或将指针从最后1条记录算起移动指定条记录(第二个参数设为adBookMarkLast),如:Adodc1.Recordset.Move -12,将指针从当前位置向前移动12条记录,再如Adodc1.Recordset.Move 6 , 1表示指针从首记录开始后移6条记录,即使指针移到第7条记录。Move方法有几个引申的方法,如下:movefirst,记录集指针移到第1条记录;movelast,记录集指针移到最后1条记录;moveprevious,记录集指针移到上一条记录;movenext,记录集指针移到下一条记录。Find方法:查找满足条件的记录。find方法简略格式为:adodc对象.recordset.find 查找表达式(为“字段 比较符号 值”)其他参数采用缺省,find工作方式是:从当前记录指针位置开始(含当前记录)向后逐条检索记录,遇到满足条件的1条记录就停下来,指针指到此记录。因此,若要实现“继续寻找下1个”的功能,只要将记录指针移到下1条记录(用movenext一下)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号