请输入您要查询的百科知识:

 

词条 GetRows
释义

GetRows介绍

GetRows方法传回一个二维的阵列变数,每一行对应Recordset中的一笔记录,且每一列对应到记录中的栏位。此方法的语法如下:

varArray = rs.GetRows([Rows], [Start], [Fields])

Rows是要读取记录的数量;如果想要取得Recordset所有记录,可用-1或省略此参数。Start 是指出第一个被读取记录的书签;也可以是下列列举常数中的一个:0-adBookmarkCurrent(目前记录)、1-adBookmarkFirst(第一笔记录)、或2-adBookmarkLast(最后记录)。

Fields 是可选择的栏位名称阵列,其用来限制要读取的资料量。(也可指定单一栏位名称、单一栏位索引、或者一个栏位索引阵列)。当设定 Rows 为少於Recordset记录笔数时,第一笔未读取的记录变成现行记录。若省略 Rows 参数或设定为-1-adGetRowsRest或大於未读取的笔数时,GetRows 方法会读取所有记录并让Recordset在EOF状态,而不会产生任何错误。

当处理目的变数阵列的资料时,应该记得资料储存方式是有点相反的感觉:阵列中第一维定义Recordset的栏位(资料行),第二维定义Recordset的资料列。以下有个载入Recordset内所有记录某三个栏位的范例:

Dim values As Variant, fldIndex As Integer, recIndex As Integer

values = rs.GetRows(, , Array("LastName", "FirstName", "BirthDate"))

For recIndex = 0 To UBound(values, 2)

For fldIndex = 0 To UBound(values)

Print values(fldIndex, recIndex),

Next

Print

Next

GetRows方法通常比一次读一笔记录的回圈要来得快些,但使用这方法时,必须确定Recordset未包含太多记录;否则,会很容易以一个非常大的变数阵列来填满所有记忆体。基於相同的原因,得小心不要包括任何BLOB(Binary Large Object)或CLOB(Character Large Object)栏位;若如此做的化,应用程式一定会爆掉,特别是对於较大的Recordset而言。最后,记住此方法传回的变数阵列是以0为基底的;传回记录的笔数是UBound(values,2)+1,传回栏位数是UBound(value, 1)+1。

--------------------------------------------------------------------------------------------------------------------------------------------------

实例

增加一个实例吧,让大家看的更加的明白一点...

使用 GetRows 方法可将记录从 Recordset 复制到二维数组中。第一个下标标识字段,第二个则标识记录号。当 GetRows 方法返回数据时数组变量将自动调整到正确大小。

如果不指定 Rows 参数的值,GetRows 方法将自动检索 Recordset 对象中的所有记录。如果请求的记录比可用记录多,则 GetRows 仅返回可用记录数。

如果 Recordset 对象支持书签,则可以通过传送该记录的 Bookmark 属性值,来指定 GetRows 方法将从哪个记录开始检索数据。

如要限制 GetRows 调用返回的字段,则可以在 Fields 参数中传送单个字段名/编号或者字段名/编号数组。

在调用 GetRows 后,下一个未读取的记录成为当前记录,或者如果没有更多的记录,则 EOF 属性设置为 True。

常用:arr_rs = rs.getrows(-1)

arr_rs = rs.getrows()

比如一个分类的表 T_Cate,结构和数据如下:

ID | Title | Intro

-----------------------------------------

1 | 新闻 | 这里是新闻

2 | 教程 | 这里是教程

3 | 下载 | 这里是下载

好了,表建立好了,数据也有了,下面我们就要用到GetRows咯!

Dim Rs_Cate

Dim Arr_Cate

Set Rs_Cate=Conn.ExeCute("SELECT ID,Title,Intro FROM T_Cate ORDER BY ID ASC")

Arr_Cate=Rs_Cate.GetRows

Set Rs_Cate=Nothing

好了表数据已经导出到数组了!下面我们将遍历这个数组

Dim Arr_CateNumS,Arr_CateNumI

Arr_CateNumS=Ubound(Arr_Cate,2) '得到数组中数据的下标

For Arr_CateNumI=0 To Arr_CateNumS

Response.Write("ID:"&Arr_Cate(0,Arr_CateNumI)&" | 标题:"&Arr_Cate(1,Arr_CateNumI)&" | 介绍:"&Arr_Cate(2,Arr_CateNumI)&"<br>")

Next

呵呵,好了,输出的数据为:

ID:1 | 标题:新闻 | 介绍:这里是新闻

ID:2 | 标题:教程 | 介绍:这里是教程

ID:3 | 标题:下载 | 介绍:这里是下载

好了,具体就写这么多吧!文采不行,如果大家有什么不明白的,多用用就可以了,呵呵

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2024/11/15 11:01:42