ASP+JAVASCRIPT 的数据库调用方法

来源:互联网 发布:电脑键盘测试软件 编辑:程序博客网 时间:2024/06/05 04:07

<%
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>");
%>
原创粉丝点击