记录集类型
时 间:2008-06-18 11:40:28
作 者:佚名 ID:108 城市:深圳
摘 要:静态(adOpenStatic)
只许前移(adOpenForwardOnly)
动态(adOpenDynamic)
键集(adOpenKeyset)
正 文:
来源:互联网 作者:佚名 时间:2006-11-06
记录集是ADO中最常用的对象,这并不值得奇怪。毕竟,他们包含着数据。但是,对于记录集还有比想象的更多的内容,知道数据如何保存和处理很重要,因为这为选择使用哪种记录集提供了更多的参考。
记录集有不同的类型,在一些细小的地方存在着差异,很容易造成失误。首先需要认真谈论的是光标的概念。
8.4.1 光标
光标(cursor)是让许多人感到困惑的概念,但实际上非常的简单。
光标用来管理记录集和记录集的当前位置,后者是由当前记录指针来处理的。
这不是Recordset对象所做的吗?是的,但是记录集也是依靠它的光标。这仍然没有回答光标是什么这个问题,那么先来看一个记录集,如表8-2所示:
这里有六行四列。打开一个记录集,当前记录就是第一个记录,即为Bob White的那条记录。用什么来标识当前记录?用当前记录指针。那么又如何处理这个指针呢?当需要移到下一条记录或者是其他记录时,是通过光标来实现的。在访问当前行的字段时,光标知道目前位于哪一行,所以能返回正确的值。如果试图移出记录集的最后一行,光标也会处理。
理解光标的一种好方法是将光标想象成为一个可以在记录集内移动的窗口。这一窗口与记录集的单个行同样高,同样长,因此一次只能看到一行数据值。当你移到另一条记录时,这个窗口也跟着移动。
也许你认为这相当简单,但它确实很重要,因为能用光标做什么是由光标的类型决定的。
1. 光标类型
光标的类型标识了光标所能够提供的功能。这里有四种类型的光标:
· 静态(adOpenStatic)。静态光标含有对记录的静态拷贝。这意味着在记录集建立之后,记录集的内容就固定了。其他用户对记录的更改、添加和删除都是不可见的。允许在记录集中向前、向后移动。
· 只许前移(adOpenForwardOnly)。缺省的光标类型,除了只允许向前移动外,其余的与静态光标相同。
· 动态(adOpenDynamic)。动态的光标没有固定的记录集。其他用户的更改、添加或删除操作在记录集中是可见的。允许在记录集中向前、向后移动。
· 键集(adOpenKeyset)。键集类型的光标除了记录集是固定的,其余的与动态光标相似。可以看到其他用户的修改,但新记录却不可见。如果别的用户删除了记录,那么这些记录在记录集中将会变得不可访问。这项功能是通过标识记录集的键来实现的,所以键一直保留着,即使改变或删除记录。
为了理解这些概念,再想象光标窗口。对于只许前移的光标,可以看作是一个位于单向齿轮上的窗口,只能向前移动。这一特点的有利之处在于一旦通过了一条记录,光标就会完全忘记该记录,因为永远不会回到该记录上。静态光标则移去了单向齿轮,允许向后移动;因为也能向后移动,光标需要跟踪这些记录。由于这个原因,静态光标比只许前移的光标慢。
对于键集和动态类型的光标,窗口可以前后移动,但所看到的内容可能会改变。键集光标可以看到别人对数据的更改,但看不到新的或已删除的记录。因此,记录集是固定的,但不是内容固定。动态光标将它扩展了,不仅可以改变记录的内容,而且可以改变记录集。所以在动态光标中能够看到有新的记录出现,同时删除的记录从记录集中消失。
使用的光标类型取决于想达到的目的。如果只想浏览记录,也许是为了创建一个表格或一个选择列表,那么用只许前移的光标是最好不过了。虽然使用其他类型的光标速度可能会慢一些,但也可以正常工作。
(对于新手来说,不管3721就选 动态adOpenDynamic)
Access软件网QQ交流群 (群号:54525238) Access源码网店
常见问答:
技术分类:
源码示例
- 【源码QQ群号19834647...(12.17)
- Access对子窗体数据进行批...(10.30)
- 最精简的组合框行来源数据快速输...(10.25)
- Access仿平台的多值选择器...(10.24)
- 【Access日期区间段查询】...(10.22)
- 【Access源码示例】VBA...(10.12)
- Access累乘示例,Acce...(10.09)
- 数值8.88,把整数8去掉,转...(10.08)
- 【Access自定义函数】一个...(09.30)
- 【Access选项卡示例】Ac...(09.09)
学习心得
最新文章
- Access系统自带的日期选择器不...(11.08)
- 分享一下Access工程中的acw...(11.07)
- Access快速开发平台--让有权...(11.04)
- Access快速开发平台--审批选...(11.01)
- ACCESS两张表先各自排序,然后...(10.31)
- Access对子窗体数据进行批量+...(10.30)
- SqlServer中如何用SQL命...(10.29)
- Access报表中的分组功能用代码...(10.28)
- 用Access计算库存结余的一个方...(10.26)
- 最精简的组合框行来源数据快速输入(...(10.25)