<% ... var connStr= "" Provider = SQLOLEDB; Data Source = localhost; Initial Catalog = jiaojingdb; User ID = sa; Password = 123456 ; " var conn = Server.CreateObject( " ADODB.Connection " ); // 定义conn的目的是可以提高效率,以后close(),但物理连接还存在,效率高。 conn.open(connStr); //** 通过Connection对象调用存储过程 ** var rs = Conn.Execute( " getUserList " , 0 , 4 ) ' 最后一个参断含义同CommandType // 实体中: while (!rs.EOF){ Response.Write( " <br> " + rs( " title " ); rs.MoveNext(); } // 记得要close() rs.close(); conn.close(); // 如果是执行删除:conn.Execute(sql) /** 通过Recordset对象调用存储过程 ** // var MyRst = Server.CreateObject( " ADODB.Recordset " ) // MyRst.open (getUserList " ,MyConStr,0,1,4) // ' MyConStr是数据库连接字串,最后一个参断含义与CommandType相同,倒数第二个1表示读取,3表示增、删、改 */ /**//* 在RecordSet组件中,常用的属性和方法有: rs.Fields.Count: RecordSet对象的字段数。 rs(i).Name: 第i个字段的名称,i为0至rs.Fields.Count - 1 rs(i): 第i个字段的数据,i为0至rs.Fields.Count- 1 rs(" 字段名 " ): 指定字段的数据。 rs.Record.Count:游标中的数据记录总数。 rs.EOF: 是否最后一条记录。 rs.MoveFirst: 指向第一条记录。 rs.MoveLast: 指向最后一条记录。 rs.MovePrev: 指向上一条记录。 rs.MoveNext: 指向下一条记录。 rs.GetRows: 将数据放入数组中。 rs.Properties.Count:ADO的ResultSet或Connection的属性个数。 rs.Properties(item).Name:ADO的ResultSet或Connection的名称。 rs.Properties: ADO的ResultSet或Connection的值。 rs.close(): 关闭连接。 关闭数据库 conn.close() */ %>
VBS中针对小数据量的数据集还有更好的解决方案:
《让我们把RS.GetRows看得更清楚 》
Rs.GetRows(N):N代表获取记录数量 Rs.GetRows(1):1表示只返回一行记录 Rs.GetRows(-1):-1表示默认值,返回所有记录 使用GetRows方法生成1个二维数组 If Not Rs.Eof Then Dim RsArr RsArr=Rs.GetRows(-1) For i=0 To Ubound(RsArr,2) '遍历记录行 For j=0 To Ubound(RsArr,1) '遍历记录列 Response.Write RsArr(j,i) '得到第i+1行,第j+1列的记录数据 Next Next End If
看完这两段代码是不是清楚了很多 webLogArr=webLog.GetRows(Log_Num) '得到所有数据 Ubound(webLogArr,2) '得到所有行 webLogArr(1,PageCount) '得到每页显示的第2列也就是log_CateID
但遗憾的是,在JavaScript中没有二维、多维数组,我是通过以下方法解决的:
<% ... Response.Write(" <script arr=new Array(); " ); var arrI = 0 ; while ( !rs.EOF){ Response.Write( " arr[ " + arrI + " ]=' " + rs( 2 ) + " '; " ); rs.MoveNext(); arrI ++ ; Response.Write( " </script> " ); %>