asp中在JScript中使用RecordSet对象的GetRows

2023-12-05 0 451

写ASP程序时,一般情况总是使用的VBScript,不过也不只是这一种选择,也可以用JScript。但在用JScript作为ASP的语言时,比用VBScript有一些小小的不方便,比如RecordSet的GetRows方法。 在ASP中操作数据库,一般都要用到RecordSet对象,如果注重程序效率的话,可能就会用到RecordSet对象的GetRows方法,把记录集对象转换成数组,而操作数组在速度上将比用RecordSet对象的MoveNext方法快很多,而且可以在取出数组后尽早释放RecordSet对象,从而减少资源的占用,这也是优化ASP性能的一个方法。 在VBScript里,用RecordSet.GetRows方法取到的是一个二维数组,里面的数据可以通过遍历数组的方式来取得。 假设现在有一个数据库,其中有一个表名为mytable,有3个字段,名称分别为id,first,second。 复制代码 代码如下:\’codebyxujiwei \’http://www.xujiwei.cn/ \’定义变量 Dimconn,rs,data,recN,i \’连接数据库 Setconn=Server.CreateObject(\”ADODB.Connection\”) conn.Open\”Provider=Microsoft.Jet.OLEDB.4.0;DataSource=\”&_ Server.MapPath(\”data.mdb\”) \’获取记录集 Setrs=conn.Execute(\”SELECTid,first,secondFROMmytable\”) \’获取数据数组 data=rs.GetRows() \’关闭记录集,释放对象 rs.Close() Setrs=Nothing \’获取记录数 recN=UBound(data,2) \’循环输出数据 Fori=0TorecN \’注意,数组下标从0开始 \’显示数据库中数据 Response.Write(\”ID:\”&data(0,i)&\”,First:\”&data(1,i)&_ \”,Second:\”&data(2,i)&\”<br/>\”) Next \’关闭数据库连接,释放对象 conn.Close() Setconn=Nothing %> 但是在JScript使用时,就会有一个问题,那就是JScript并没有二维数组,如果要用GetRows所获取的数据,必要将这个VBScript中的二维数组转换成JScript能识别的数组,即元素为数组的一个一维数组。 在JScript里,用GetRows方法获取的数组有一个toArray方法,可以转换成JScript中能用的数组,但是这个数组是一维的,也就是说,如果要像在VBScript一样使用的话,还需要我们自己来做转换。 查阅了MSDN及在网上搜索了相关的文章之后,我写了一个数组转换的函数用于在JScript中使用GetRows方法。 复制代码 代码如下:<scriptlanguage=\”JScript\”runat=\”server\”> //codebyxujiwei //http://www.xujiwei.cn/ //定义变量 varconn,rs,vdata,data,recN,i; //连接数据库 conn=Server.CreateObject(\”ADODB.Connection\”); conn.Open(\”Provider=Microsoft.Jet.OLEDB.4.0;DataSource=\”+ Server.MapPath(\”data.mdb\”)); //获取记录集 rs=conn.Execute(\”SELECTid,first,secondFROMtest\”); //获取数据数组,并转换成为JScript中可用的数组类型 vdata=rs.GetRows().toArray(); //获取数据表的字段数 i=rs.Fields.Count; //关闭记录集,释放对象 rs.Close(); rs=null; //转换数组 data=transArray(vdata,i); //获取记录数 recN=data.length; //循环输出数据 for(i=0;i<recN;i++){ //注意,数组下标从0开始 //显示数据库中数据 Response.Write(\”ID:\”+data[i][0]+\”,First:\”+data[i][1]+ \”,Second:\”+data[i][2]+\”<br/>\”); } //关闭数据库连接,释放对象 conn.Close(); conn=null; //数组转换函数 //byxujiwei //参数:arr-GetRows方法得到的对象用toArray方法得到的数组 //fieldslen-数据表字段数 functiontransArray(arr,fieldslen){ varlen=arr.length/fieldslen,data=[],sp; for(vari=0;i<len;i++){ data[i]=newArray(); sp=i*fieldslen; for(varj=0;j<fieldslen;j++) data[i][j]=arr[sp+j]; } returndata; } </script> 对于一些更新频率不高,而使用次数比较多的数据,可以在成功获取数据数组之后,用Application对象来缓存起来,从而减少对数据库的查询次数,一定程序程度上优化ASP的性能。转地址:http://www.xujiwei.cn/blog/?id=717

您可能感兴趣的文章:

  • 用GetString提高ASP的速度
  • asp ADO GetString函数与用GetString来提高ASP的速度
  • 在asp中通过getrows实现数据库记录分页的一段代码
  • asp中通过getrows实现数据库记录分页的一段代码
  • asp中记录集对象的getrows和getstring用法分析

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 编程10000问 asp中在JScript中使用RecordSet对象的GetRows https://www.u-9.cn/biancheng/bc10000/96436.html

asp中在JScript中使用RecordSet对象的GetRows
上一篇: oblog_4.6_SQL 语句
asp中在JScript中使用RecordSet对象的GetRows
下一篇: ASP问答集
常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务