高效率的GetRows()的使用方法
时间:2008-9-23 网友评论
条
【
大
中
小】
Rs.GetRows(N):N代表获取记录数量
Rs.GetRows(1):1表示只返回一行记录
Rs.GetRows(-1):-1表示默认值,返回所有记录
使用GetRows方法生成1个二维数组
用它可以大幅提升ASP的效能.
<%
Set conn = Server.CreateObject("ADODB.Connection")
Set cmd = Server.CreateObject("ADODB.Command")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db2.mdb")
cmd.ActiveConnection = conn
cmd.CommandText = "Select * from people order by id desc"
Set rs = cmd.Execute
rsArray = rs.GetRows()'Rs.GetRows(N):N代表获取记录数量
For i = 0 To UBound(rsArray, 2)
Response.Write rsArray(0, i)&" | "
Next
%>
10W条记录耗时187.500毫秒,总测试平均值在0.2秒左右
GetRows()方法是将数据从 Recordset 复制到二维数组中,这是一个二维数组,
第一个下标标识字段,第二个则标识记录号所以rsArray = rs.GetRows()
rsArray(0, 0)就表示记录集第一行的第一字段值
rsArray(1, 0)就表示记录集第一行的第二字段值
数组的数据是保存在内存中的,这就从根本上解决了每次显示记录还需向数据库请求的麻烦。
再比如一个BLOG分类的表 b_cat,结构和数据如下:
ID | Title | Intro
------------------------------
1 | 新闻 | 这里是新闻
2 | 文章 | 这里是文章
3 | 下载 | 这里是下载
这样表建立好了,数据也有了,下面用GetRows 方法
Dim Rs_Cat
Dim Arr_Cat
Set Rs_Cat=Conn.ExeCute("Select ID,Title,Intro FROM b_Cat orDER BY ID ASC")
Arr_Cat=Rs_Cat.GetRows
Set Rs_Cat=Nothing
把表数据导出到数组!下面将遍历这个数组
Dim Arr_CatNumS,Arr_CatNumI
Arr_CatNumS=Ubound(Arr_Cat,2) '得到数组中数据的下标
For Arr_CatNumI=0 To Arr_CatNumS
Response.Write("ID:"&Arr_Cat(0,Arr_CatNumI)&" | 标题:"&Arr_Cat(1,Arr_CatNumI)&" | 介绍:"&Arr_Cat(2,Arr_CatNumI)&"<br>")
Next
于是,输出的数据为:
ID:1 | 标题:新闻 | 介绍:这里是新闻
ID:2 | 标题:文章 | 介绍:这里是文章
ID:3 | 标题:下载 | 介绍:这里是下载
很多人可能只知道GetRows方法是形成一个2维
数组,但是不知道是怎么样一个2维数组。看看下面的例子:
生成的2维数组通过
表格的形式显示出来:
这样就对比起来就清晰多了!