RS.GETROWS使用详解

来源:中国软件 时间:2008-01-16 13:21:00 

  ADO也提供更有效率方法来取得数据。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。

GetString 方法跟 GetRows 是类似的,不过其传回以单一字符串形式存在的多重记录。

etString 语法如下:

GetString([Format], [NumRows], [ColDelimiter], [RowDelimiter], [NullExpr])


Format 是结果的格式。GetString 还可能支持更多格式,但是目前唯一支持的格式是2- adClipString,所以实际上没有任何选择。NumRows 是要取得的列数。(使用-1或省略此参数来读取所有剩下的记录。)ColDelimiter 是行的分隔字符(预设为Tab字符)。RowDelimiter 为记录的分隔字符(预设为换行字符)。NullExpr 是用来表示Null字段的字符串(预设为空字符串)。文件中说明只有当Format= adClipString时,最后三个参数才可使用,但是这警告没有多大意义,因为(如之前所提)此格式是目前唯一支持的。以下有个例子,其透过 GetString 方法来将数据汇出成以分号分隔的文字文件:


Dim i As Long
Open "datafile.txt" For Output As #1
For i = 0 To rs.Fields.Count _ 1          ' Export field names.
    If i > 0 Then Print #1, ";";
    Print #1, rs.Fields(i).Name;
Next
Print #1, ""
rs.MoveFirst                              ' Export data.
Print #1, rs.GetString(, , ";", vbCrLf);  ' Don't add an extra CR-LF here.
Close #1


GetString 方法不允许只汇出字段的子集合,也不允许修改汇出字段的顺序。如果需要这些额外的功能,应该使用 GetRows 方法且自行建立结果字符串。

 

标签:GETROWS,rs,sql,数据
0
投稿

猜你喜欢

  • ASP sql:rs.open语句详细说明

    2008-03-17 11:30:00
  • javascript模拟鼠标自动点击链接

    2007-11-03 19:08:00
  • javascript面向对象技术基础(四)

    2010-02-07 13:15:00
  • 关于Youtube URL的十个技巧

    2009-04-21 13:19:00
  • 有效防止ASP木马上传运行—小知识[网络安全技术]

    2011-03-06 11:15:00
  • sqlserver 脚本和批处理指令小结

    2012-05-22 18:56:55
  • 渗透和改变 非洲web 2.0网站Logo

    2008-01-22 13:31:00
  • 如何设计注册激活邮件

    2010-01-12 13:14:00
  • IE9一个非常牛的“bug”

    2010-05-07 12:45:00
  • 开心网上input输入框研究

    2009-03-06 12:52:00
  • 关于ASP eof与bof 区别分析

    2011-03-11 11:14:00
  • 表单特殊输入js验证

    2008-03-26 12:01:00
  • MySQL聚焦Web 2.0可扩展性

    2012-01-05 19:02:19
  • asp如何验证信用卡是否可用?

    2010-06-10 18:39:00
  • ASP.NET教程第一讲 ASP.NET简介

    2007-08-07 11:50:00
  • 用好FrontPage2003的九大功能

    2008-02-21 14:29:00
  • Oracle新建用户、角色,授权,建表空间的sql语句

    2012-07-11 15:39:24
  • Windows XP操作系统下的MYSQL安装过程

    2008-11-24 12:52:00
  • js自定义网页右键菜单方法

    2007-11-28 12:50:00
  • asp下通过HTTP_USER_AGENT判断用户是从手机上访问,还是电脑IE上访问

    2011-02-24 11:00:00
  • asp之家 网络编程 m.aspxhome.com