首页 理论教育 VisualC++遍历记录集-高级编程技术

VisualC++遍历记录集-高级编程技术

时间:2023-11-16 理论教育 版权反馈
【摘要】:当得到一个记录集,要从各条记录中读出数据,必须在记录集中移动光标,使要访问的记录成为当前记录。MoveNext:移到记录集中当前记录的后一条记录处。同样,当到达记录集中的第一条记录时,BOF属性设为TRUE。

VisualC++遍历记录集-高级编程技术

当得到一个记录集,要从各条记录中读出数据,必须在记录集中移动光标,使要访问的记录成为当前记录。在ADO对象中提供了几种在记录集中移动记录指针的方法,用这些方法可以方便地得到要访问的记录。以下将详细讲述这几种方法。

1. 简单滚动

这些函数包含MoveFirst()、MoveLast()、MovePrevious()、MoveNext()等,函数的作用可以表示如下:

MoveFirst:移到记录集中的第一条记录处。

MoveLast:移到记录集中的最后一条记录处。

MovePrevious:移到记录集中的当前记录的前一条记录处。

MoveNext:移到记录集中当前记录的后一条记录处。

注意:当滚动记录集时,可以用记录集中的EOF属性来判断是否已经到了记录集末尾,当调用滚动函数到达记录集中最后一条记录,EOF属性设为TRUE。同样,当到达记录集中的第一条记录时,BOF属性设为TRUE。由于我们在#import中引入了头文件也定义了EOF和BOF,所以必须在程序中重新定义EOF和BOF。

2. Move()函数

除了以上的简单移动的函数外,在引入.tlh的中还提供了一个Move()函数,此函数为在记录集中移动提供了更灵活的功能。

此函数的定义如下:

HRESULT Move(long NumRecords, const_variant_t& Start = vtMissing);

NumRecords:表示当前记录指针移动的记录数。如果此值为正数,指针向前移:如果值为负数指针向后移。

Start:指明移动的起始位置,如果缺省则是从当前记录移动。也可以传给此值一个书签值,那么当前记录将从书签指定的记录移动。(www.xing528.com)

3. 绝对定位

ADO记录集对象也允许通过设置记录集的AbsolutePosition属性,把你所期望的当前记录数设置为记录集中的绝对位置,该位置是记录集中的记录从第一条记录到记录集当前记录中的记录数。

4. 按页滚动

ADO记录集对象也允许你按页滚动记录集,在按页显示数据给用户看的应用程序中,按页滚动是非常有用的,要使用页滚动,首先需要把记录集的PageSize属性设置为一页中包含的记录数。然后,通过察看PageCount属性可知记录集具有的页数,并把AbsolutePage属性设置为你想定位的当前记录所在页的页号,就可以实现按页滚动记录集。

5. 使用书签

如果使用的记录集中支持书签,就可以使用书签值来使一个特定记录为当前记录,通过读记录中Bookmark的属性,可以获得当前的记录值。如果存储了此值,以后可以设置记录集的Bookmark属性为此存储值,反复使用由书签值指示的记录为当前记录。

6. GetRow()函数

以上的函数和属性设置都是讲述如何从记录集中获得一行数据,但是,记录集对象也允许获得包含一组记录数据的数据数组,这可以使应用程序更为有效。此函数在.tlh文件中声明,其定义如下:

其参数的意义如下:

Rows:用于指定想要获得的记录数,或者可以设置为adGetRowsReset来获得剩下的所有记录。

Start:指明移动的起始位置,如果缺省则是从当前记录移动。也可以传给此值一个书签值,那么当前记录将从书签指定的记录移动。

Fields:可以通过指定字段的序号或者字段名来说明只获得一个字段,另外可以通过传送序号数组或者字段名数组来请求处理一系列的字段。

此函数的返回值是一个二维数组的变量,第一个数组的下标表示字段,第二个下标用于表示特定的记录。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈