RecordSet.GetRows

来源:互联网 发布:怎么投诉软件 编辑:程序博客网 时间:2024/05/29 23:24
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的数据列。

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

摘自: http://www.jb51.net/article/9549.htm

MSDN:  https://docs.microsoft.com/en-us/sql/ado/reference/ado-api/getrows-method-ado