源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 344|回复: 16

[ASP编程] 把RS.GetRows看得更清楚

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2007-4-19 00:00:00 | 显示全部楼层 |阅读模式
用过Rs.GetRow的兄弟都知道Rs.GetRow可以更有效率地获取小容量数据(不适合大容量数据,尤其涉及大对象的时候,容易暴掉,我就爆过一次),PuterJam应用得不错的说。

但是Rs.GetRow返回的是一个二维数组,我们经常不知道哪段对哪段。这个很麻烦,于是编了一小段程序方便调试用:


    Dim ds
    Set objRS=objConn.Execute("SELECT * FROM [blog_Upload] WHERE ([ul_Quote] LIKE '%" & CStr(ID) & "%') ")
        ds=objRS.GetRows
    objRS.Close()
    Set objRS=Nothing

' 建立一个表格
Response.Write "Written By Sipo(www.dc9.cn)<table align=""center"" border=""1"">"
Response.Write vbcrlf
Response.Write "<tr><td></td>"
For j = 0 To UBound(ds, 1)
Response.Write "<td>ds("&j&",X)</td>"
Next
Response.Write "</tr>"
' 每一行
  For i = 0 To UBound(ds, 2)
    Response.Write "<tr><td>ds(X,"&i&")</td>"& vbcrlf
    ' 每一列
    For j = 0 To UBound(ds, 1)
      Response.Write "<td>"
      If IsNull(ds(j, i)) Then 
      Response.Write "Null"
      Else
      Response.Write ds(j, i)
      End If
      Response.Write "<br>"
      Response.Write "<b>ds("&j&","&i&")</b>"
      Response.Write "</td>"
    Next

    Response.Write "</tr>" & vbcrlf
  Next

  Response.end






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

献给菜鸟们:
关于GetRows的小资料:


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的数据列。

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

使用道具 举报

13

主题

2万

回帖

97

积分

注册会员

Rank: 2

积分
97
发表于 2022-9-6 20:52:18 | 显示全部楼层
天天源码论坛
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-2-23 12:33:17 | 显示全部楼层
额头额定法国队是范德萨
回复 支持 反对

使用道具 举报

15

主题

2万

回帖

122

积分

注册会员

Rank: 2

积分
122
发表于 2024-1-20 18:35:24 | 显示全部楼层
哟哟哟哟哟以偶
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-3-6 13:15:22 | 显示全部楼层
女生看了弄丢了卡萨诺的卡洛斯
回复 支持 反对

使用道具 举报

9

主题

2万

回帖

420

积分

中级会员

Rank: 3Rank: 3

积分
420
发表于 2024-5-6 19:59:51 | 显示全部楼层
1312315458748777
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

61

积分

注册会员

Rank: 2

积分
61
发表于 2024-5-23 23:56:11 | 显示全部楼层
好东西可以可以可以可以
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2024-5-28 18:37:27 | 显示全部楼层
哈哈哈哈哈哈哈
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

499

积分

中级会员

Rank: 3Rank: 3

积分
499
发表于 2024-8-7 04:59:34 | 显示全部楼层
看看看看
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-8-7 05:16:31 | 显示全部楼层
飞飞飞飞飞飞飞飞飞飞飞飞飞
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-24 14:12 , Processed in 0.094941 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表