正在加载图片...
章A00基若259 下载 这里有六行四列。打开一个记录集,当前记录就是第一个记录,即为 Bob white的那条记 录。用什么来标识当前记录?用当前记录指针。那么又如何处理这个指针呢?当需要移到下 条记录或者是其他记录时,是通过光标来实现的。在访问当前行的字段时,光标知道目前 位于哪一行,所以能返回正确的值。如果试图移出记录集的最后一行,光标也会处理 理解光标的一种好方法是将光标想象成为一个可以在记录集内移动的窗口。这一窗口与 记录集的单个行同样高,同样长,因此一次只能看到一行数据值。当你移到另一条记录时, 这个窗口也跟着移动。 也许认为这相当简单,但它确实很重要,因为能用光标做什么是由光标的类型决定的。 1.光标类型 光标的类型标识了光标所能够提供的功能。这里有四种类型的光标: ·静态( adOpenStatic)。静态光标含有对记录的静态拷贝。这意味着在记录集建立之后, 记录集的内容就固定了。其他用户对记录的更改、添加和删除都是不可见的。允许在记 录集中向前、向后移动 只许前移( adOpenForwardOnly)。缺省的光标类型,除了只允许向前移动外,其余的与 静态光标相同 动态( adOpen Dynamic)。动态的光标没有固定的记录集。其他用户的更改、添加或删除 操作在记录集中是可见的。允许在记录集中向前、向后移动。 ·键集( adOpenKeyset)。键集类型的光标除了记录集是固定的,其余的与动态光标相似 可以看到其他用户的修改,但新记录却不可见。如果别的用户删除了记录,那么这些记 录在记录集中将会变得不可访问。这项功能是通过标识记录集的键来实现的,所以键一 直保留着,即使改变或删除记录 为了理解这些概念,再想相光标窗口。对于只许前移的光标,可以看作是一个位于单向 齿轮上的窗口,只能向前移动。这一特点的有利之处在于一旦通过了一条记录,光标就会完 全忘记该记录,因为永远不会回到该记录上。静态光标则移去了单向齿轮,允许向后移动 因为也能向后移动,光标需要跟踪这些记录。由于这个原因,静态光标比只许前移的光标慢。 对于键集和动态类型的光标,窗口可以前后移动,但所看到的内容可能会改变。键集光 标可以看到别人对数据的更改,但看不到新的或已删除的记录。因此,记录集是固定的,但 不是内容不固定。动态光标将它扩展了,不仅可以改变记录的内容,而且可以改变记录集。 所以在动态光标中能够看到有新的记录出现,同时删除的记录从记录集中消失。 使用的光标类型取决于想达到的目的。如果只想浏览记录,也许是为了创建一个表格或 一个选择列表,那么用只许前移的光标是最好不过了。虽然使用其他类型的光标速度可能会 慢一些,但也可以正常工作 光标的类型会影响性能,特别是服务器光标。例如,在微软的 SQL Server6.5中,键集和 静态类型的光标都需要在临时数据库( tempdb)中放入一个完整的数据拷贝。其中,键集类型 的光标相比较而言稍微高效一些,因为它只将键拷入临时数据库。对于 SQL Server7.0情况不 是这样,不同类型的光标的运行效率差别不是很大 2.光标位置 既然已经解释了什么是光标,以及光标如何管理数据,但是光标在哪里呢?答案不是固 定的,因为光标依赖于数据存储。某些数据存储,比如微软的 SQL Server,有自身的光标服这里有六行四列。打开一个记录集,当前记录就是第一个记录,即为 Bob White的那条记 录。用什么来标识当前记录?用当前记录指针。那么又如何处理这个指针呢?当需要移到下 一条记录或者是其他记录时,是通过光标来实现的。在访问当前行的字段时,光标知道目前 位于哪一行,所以能返回正确的值。如果试图移出记录集的最后一行,光标也会处理。 理解光标的一种好方法是将光标想象成为一个可以在记录集内移动的窗口。这一窗口与 记录集的单个行同样高,同样长,因此一次只能看到一行数据值。当你移到另一条记录时, 这个窗口也跟着移动。 也许认为这相当简单,但它确实很重要,因为能用光标做什么是由光标的类型决定的。 1. 光标类型 光标的类型标识了光标所能够提供的功能。这里有四种类型的光标: • 静态( a d O p e n S t a t i c )。静态光标含有对记录的静态拷贝。这意味着在记录集建立之后, 记录集的内容就固定了。其他用户对记录的更改、添加和删除都是不可见的。允许在记 录集中向前、向后移动。 • 只许前移( a d O p e n F o r w a r d O n l y )。缺省的光标类型,除了只允许向前移动外,其余的与 静态光标相同。 • 动态( a d O p e n D y n a m i c )。动态的光标没有固定的记录集。其他用户的更改、添加或删除 操作在记录集中是可见的。允许在记录集中向前、向后移动。 • 键集( a d O p e n K e y s e t )。键集类型的光标除了记录集是固定的,其余的与动态光标相似。 可以看到其他用户的修改,但新记录却不可见。如果别的用户删除了记录,那么这些记 录在记录集中将会变得不可访问。这项功能是通过标识记录集的键来实现的,所以键一 直保留着,即使改变或删除记录。 为了理解这些概念,再想相光标窗口。对于只许前移的光标,可以看作是一个位于单向 齿轮上的窗口,只能向前移动。这一特点的有利之处在于一旦通过了一条记录,光标就会完 全忘记该记录,因为永远不会回到该记录上。静态光标则移去了单向齿轮,允许向后移动; 因为也能向后移动,光标需要跟踪这些记录。由于这个原因,静态光标比只许前移的光标慢。 对于键集和动态类型的光标,窗口可以前后移动,但所看到的内容可能会改变。键集光 标可以看到别人对数据的更改,但看不到新的或已删除的记录。因此,记录集是固定的,但 不是内容不固定。动态光标将它扩展了,不仅可以改变记录的内容,而且可以改变记录集。 所以在动态光标中能够看到有新的记录出现,同时删除的记录从记录集中消失。 使用的光标类型取决于想达到的目的。如果只想浏览记录,也许是为了创建一个表格或 一个选择列表,那么用只许前移的光标是最好不过了。虽然使用其他类型的光标速度可能会 慢一些,但也可以正常工作。 光标的类型会影响性能,特别是服务器光标。例如,在微软的 SQL Server 6.5中,键集和 静态类型的光标都需要在临时数据库 ( t e m p d b )中放入一个完整的数据拷贝。其中,键集类型 的光标相比较而言稍微高效一些,因为它只将键拷入临时数据库。对于 SQL Server 7.0情况不 是这样,不同类型的光标的运行效率差别不是很大。 2. 光标位置 既然已经解释了什么是光标,以及光标如何管理数据,但是光标在哪里呢?答案不是固 定的,因为光标依赖于数据存储。某些数据存储,比如微软的 SQL Server,有自身的光标服 第8章 ADO 基 础计计259 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有