|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Windows本身的所有问题都会一成不变的也累加到了它的身上。安全性、稳定性、跨平台性都会因为与NT的捆绑而显现出来;js|jscript|工具 写ASP程序时,一样平常情形老是利用的VBScript,不外也不但是这一种选择,也能够用JScript。但在用JScript作为ASP的言语时,比用VBScript有一些小小的不便利,好比RecordSet的GetRows办法。
在ASP中操纵数据库,一样平常都要用到RecordSet工具,假如注意程序效力的话,大概就会用到RecordSet工具的GetRows办法,把纪录集工具转换成数组,而操纵数组在速率大将比用RecordSet工具的MoveNext办法快良多,并且能够在掏出数组后尽早开释RecordSet工具,从而削减资本的占用,这也是优化ASP功能的一个办法。
在VBScript里,用RecordSet.GetRows办法取到的是一个二维数组,内里的数据能够经由过程遍历数组的体例来获得。
假定如今有一个数据库,个中有一个表名为mytable,有3个字段,称号分离为id,first,second。
程序代码:
界说变量
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">
//界说变量
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;
//数组转换函数
//参数: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的功能。
对用户来说可预见费用、节约费用,可以做到花少钱办大事。由于省去了购买软件和硬件等的前期费用,用户可以租用较高级的应用软件。ASP的收费是根据软件的类型、客制化程度、用户数量、服务期限来定的,对客户来说这笔费用是可以预见的。方便于客户应用软件的升级。 |
|