写ASP程序时,一般情况总是使用的VBScript,不过也不只是这一种选择,也可以用JScript。但在用JScript作为ASP的语言时,比用VBScript有一些小小的不方便,比如RecordSet的GetRows方法。
在ASP中操作数据库,一般都要用到RecordSet对象,如果注重程序效率的话,可能就会用到RecordSet对象的GetRows方法,把记录集对象转换成数组,而操作数组在速度上将比用RecordSet对象的MoveNext方法快很多,而且可以在取出数组后尽早释放RecordSet对象,从而减少资源的占用,这也是优化ASP性能的一个方法。
在VBScript里,用RecordSet.GetRows方法取到的是一个二维数组,里面的数据可以通过遍历数组的方式来取得。
假设现在有一个数据库,其中有一个表名为mytable,有3个字段,名称分别为id,first,second。
程序代码:
- '' code by xujiwei
- '' http://www.xujiwei.cn/
- '' 定义变量
- Dim conn,rs,data,recN,i
- '' 连接数据库
- Set conn=Server.CreateObject("ADODB.Connection")
- conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &_
- Server.MapPath("data.mdb")
- '' 获取记录集
- Set rs=conn.Execute("SELECT id,first,second FROM mytable")
- '' 获取数据数组
- data=rs.GetRows()
- '' 关闭记录集,释放对象
- rs.Close()
- Set rs=Nothing
- '' 获取记录数
- recN=UBound(data,2)
- '' 循环输出数据
- For i=0 To recN
- '' 注意,数组下标从0开始
- '' 显示数据库中数据
- Response.Write("ID: "&data(0,i)&", First: "&data(1,i)&_
- ", Second: "&data(2,i)&"<br />")
- Next
- '' 关闭数据库连接,释放对象
- conn.Close()
- Set conn=Nothing
- %>