<p>VBScript可以自动将getRows返回的值转换成一个二维数组,但JavaScript没有二维数组,我们只能通过toArray将其返回的值先转换成一维数组,然后再进行转换成类似VBScript的二维数组。</p>
<p>我们先来分析下toArray后数组中的内容,有如下一张表(T_Users):</p>
<p>
<table cellspacing="1" cellpadding="1" width="200" border="1">
<tbody>
<tr>
<td>id</td>
<td>username</td>
<td>userpass</td>
</tr>
<tr>
<td>1</td>
<td>admin</td>
<td>admin888</td>
</tr>
<tr>
<td>2</td>
<td>dnawo</td>
<td>66666</td>
</tr>
</tbody>
</table>
<br />使用toArray()后数组的内容如下:</p>
<p>arr[0] = 1<br />arr[1] = admin<br />arr[2] = admin888<br />arr[3] = 2<br />arr[4] = dnawo<br />arr[5] = 66666</p>
<p>下面我们来将它拆分成二维数组,我写了一个函数来实现:</p>
<p>function RecordToArray(oRs){<br /> if(typeof(oRs) == "object"){<br /> var arr = ors.getRows(-1).toArray();//用toArray转为数组<br /> var arr2 = new Array();<br /> var cols = ors.fields.count;//列<br /> var rows = arr.length/cols;//行<br /> <br /> for(var i=0;i<cols;i++){<br /> arr2 = new Array();<br /> for(var j=0;j<rows;j++){<br /> var k = rows*i+j;<br /> arr2[j] = arr[k];<br /> }<br /> }<br /> <br /> return arr2;<br /> }else{<br /> return "";<br /> }<br />}</p>
<p>使用举例:</p>
<p><%<br />try{<br /> var conn = new ActiveXObject("ADODB.Connection");<br /> var rs = new ActiveXObject("ADODB.RecordSet");<br /> conn.connectionString = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " + Server.MapPath("db1.mdb");<br /> conn.open();<br />}catch(e){<br /> Response.write("数据库连接出错!");<br /> Response.End();<br />}<br />rs.open("T_Users",conn,1,1);<br />if(!rs.eof){<br /> var arr = new Array();<br /> arr = RecordToArray(rs);<br />}<br />rs.close<br />rs = null;<br />conn.close;<br />conn = null;<br />%></p>
评论(0)
暂无评论。