1、javascript使用getrows()方法数组转换函数javascript使用getrows()方法数组转换函数 VBSript可以自动将getRs返回的值转换成一个二维数组,但JavaSript没有二维数组,我们只能通过tArray将其返回的值先转换成一维数组,然后再进行转换成类似VBSript的二维数组。我们先来分析下tArray后数组中的内容,有如下一张表(T_Users):idusernaeuserpass1adinadin8882dna66666使用tArray()后数组的内容如下: arr0 = 1 arr1 = adin arr2 = adin888 arr3 = 2 arr
2、4 = dna arr5 = 66666下面我们来将它拆分成二维数组,我写了一个函数来实现:funtin RerdTArray(Rs) if(typef(Rs) = bjet) var arr = rs.getRs(-1).tArray();/用tArray转为数组 var arr2 = ne Array(); var ls = rs.fields.unt;/列 var rs = arr.length/ls;/行 fr(var i=0;ils;i+) arr2i = ne Array(); fr(var j=0;jrs;j+) var k = rs*i+j; arr2ij = arrk; re
3、turn arr2; else return ; 使用举例:% try var nn = ne AtiveXbjet(ADDB.nnetin); var rs = ne AtiveXbjet(ADDB.RerdSet); nn.nnetinString = Prvider = irsft.Jet.LEDB.4.0;Data Sure = + Server.apPath(db1.db); nn.pen(); ath(e) Respnse.rite(数据库连接出错!); Respnse.End(); rs.pen(T_Users,nn,1,1); if(!rs.ef) var arr = ne A
4、rray(); arr = RerdTArray(rs); rs.lse rs = null; nn.lse; nn = null; %s ipt language=JSript runat=server/ de by xujiei/ :/ 定义变量var nn,rs,vdata,data,reN,i;/ 连接数据库nn=Server.reatebjet(ADDB.nnetin);nn.pen(Prvider=irsft.Jet.LEDB.4.0;Data Sure=+ Server.apPath(data.db);/ 获取记录集rs=nn.Exeute(SELET id,first,send
5、 FR test);/ 获取数据数组,并转换成为JSript中可用的数组类型vdata=rs.GetRs().tArray();/ 获取数据表的字段数i=rs.Fields.unt;/ 关闭记录集,释放对象rs.lse();rs=null;/ 转换数组data=transArray(vdata,i);/ 获取记录数reN=data.length;/ 循环输出数据fr(i=0;ireN;i+) / 注意,数组下标从0开始 / 显示数据库中数据 Respnse.rite(ID: +datai0+, First: +datai1+ , Send: +datai2+br /);/ 关闭数据库连接,释放对象nn.lse();nn=null;/ 数组转换函数/ by xujiei/ 参数:arr - GetRs方法得到的对象用tArray方法得到的数组/ fieldslen - 数据表字段数funtin transArray(arr,fieldslen) var len=arr.length/fieldslen,data=,sp; fr(var i=0;ilen;i+) datai=ne Array(); sp=i*fieldslen; fr(var j=0;jfieldslen;j+) dataij=arrsp+j; return data;/sr pt