首页 >  应用与开发  >  ASP

高效率的GetRows()的使用方法

发布日期:2010-01-27 

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 | 标题:下载 | 介绍:这里是下载