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

时间:2008-09-23 18:29:00 

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维数组通过表格的形式显示出来:



这样就对比起来就清晰多了!

标签:GetRows,数据库,性能,asp
0
投稿

猜你喜欢

  • 巧用一条SQL 实现其它进制到十进制转换

    2009-01-19 13:16:00
  • 用asp实现的获取文件夹中文件的个数的代码

    2011-03-08 11:02:00
  • 搜索关键字加亮js实现方法

    2007-08-27 14:11:00
  • 五个影响mysql性能的关键配置

    2010-08-08 09:13:00
  • 用ASP设计购物车

    2008-04-17 13:52:00
  • Dreamweaver制作技巧四则

    2008-01-04 09:42:00
  • jQuery 1.4 Released 新特性官方诠释

    2010-04-01 12:23:00
  • javascript 获取硬盘信息代码

    2007-12-08 21:27:00
  • 使用正则表达式找出不包含特定字符串的条目

    2010-03-02 22:06:00
  • Sql Server、Oracle以及Access数据库 判断字段是否为空的办法 (From calmzeal's code life)

    2011-02-24 19:44:00
  • 动态加载JavaScript的小实践

    2009-11-12 12:38:00
  • 用户是如何浏览你的网站的

    2010-05-03 14:26:00
  • 三种数据库利用SQL语句进行高效果分页

    2008-11-28 14:52:00
  • 界面设计10条可用性方面的启发

    2010-04-06 17:22:00
  • 文章关键字替换带链接需要注意的两个问题

    2010-02-25 12:18:00
  • ASP所有的Session变量获取实现代码

    2011-03-11 10:44:00
  • 关于Ajax responseText 中文乱码问题

    2008-02-12 16:30:00
  • PJBlog3优化——单击自动输入验证码

    2009-05-17 11:03:00
  • 解析:在SQL Server下数据库链接的使用

    2009-01-23 13:37:00
  • MySQL的root密码丢失解决方法

    2011-05-05 15:56:00
  • asp之家 网络编程 m.aspxhome.com