asp中在JScript中使用RecordSet对象的GetRows_编程10000问

来源:脚本之家  责任编辑:小易  

可以混合几种形式的语言的!指令只不过是指定了相应的默认语言,也就是说如果是块内的语句都是相应默认语言进行解析的.但如果在体中还想使用其他的语言可以用块写入用这种方式进行指定相应的语言而不再调默认的语言了!这果你可以使用很多门的语言的!同时还可以写成等形式,如果使用VBS则可写作"text/VBScript"的!如果没有指明则会使用language指令指定的默认语言!如果是在ASP.net中还是兼容这种格式,但区别就是一定要记得后边加一个"runat="server">表示运行在服务器端的!www.zgxue.com防采集请勿采集本网。

写ASP程序时,一般情况总是使用的VBScript,不过也不只是这一种选择,也可以用JScript。但在用JScript作为ASP的语言时,比用VBScript有一些小小的不方便,比如RecordSet的GetRows方法。

在ASP中操作数据库,一般都要用到RecordSet对象,如果注重程序效率的话,可能就会用到RecordSet对象的GetRows方法,把记录集对象转换成数组,而操作数组在速度上将比用RecordSet对象的MoveNext方法快很多,而且可以在取出数组后尽早释放RecordSet对象,从而减少资源的占用,这也是优化ASP性能的一个方法。

楼上这句话就错了:对于ASP来讲.主要使用的是VBSCRIPT,JSCRIPT起到一个辅助功能.asp可以使用vbscript和javascript两种语言写,只要你指定使用的语言,都可以,没有什么主要或辅助之分。也可以同时两种一起

在VBScript里,用RecordSet.GetRows方法取到的是一个二维数组,里面的数据可以通过遍历数组的方式来取得。

首先,你是说java还是js,两者是不同的概念 其次,页面交互式的话可以用js,但操作数据库的话就不行了 可以在页面上用js,背后用asp接收页面所传的数据再对数据库进行操作,最后将结果传回页面上

假设现在有一个数据库,其中有一个表名为mytable,有3个字段,名称分别为id,first,second。

利用ASP可以向网页中添加交互式内容(如在线表单),也可以创建使用HTML网页作为用户界面的web应用程序。Javascript是一种由Netscape的LiveScript发展而来的面向对象的客户端脚本语言,主要目的是为了解决

复制代码 代码如下:

可以新建文件夹“JS”=>右击=>添加新项=>选择“JScript文件”=>命名后确定(假设命名为JScript.js) 所需页面写上代码 JS/JScript.js\"type=\"text/javascript\">(文件路径src可以手动选择) 更简单

' code by xujiwei

先创建一个隐藏域表单,然后在上面的<script></script>之间加如下代码:document.getElementById(\"隐藏表单id的值\")=I 上面的代码实现了,把JS中的变量值放到了隐藏域中,然后在点击提交的时候,通过,可以用II

' http://www.xujiwei.cn/

' 定义变量

Dim conn,rs,data,recN,i

' 连接数据库

Set conn=Server.CreateObject("ADODB.Connection")

conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &_

    Server.MapPath("data.mdb")

' 获取记录集

Set rs=conn.Execute("SELECT id,first,second FROM mytable")

' 获取数据数组

data=rs.GetRows()

' 关闭记录集,释放对象

rs.Close()

Set rs=Nothing

' 获取记录数

recN=UBound(data,2)

' 循环输出数据

For i=0 To recN

    ' 注意,数组下标从0开始

    ' 显示数据库中数据

    Response.Write("ID: "&data(0,i)&", First: "&data(1,i)&_

        ", Second: "&data(2,i)&"<br />")

Next

' 关闭数据库连接,释放对象

conn.Close()

Set conn=Nothing

%>

但是在JScript使用时,就会有一个问题,那就是JScript并没有二维数组,如果要用GetRows所获取的数据,必要将这个VBScript中的二维数组转换成JScript能识别的数组,即元素为数组的一个一维数组。

在JScript里,用GetRows方法获取的数组有一个toArray方法,可以转换成JScript中能用的数组,但是这个数组是一维的,也就是说,如果要像在VBScript一样使用的话,还需要我们自己来做转换。

查阅了MSDN及在网上搜索了相关的文章之后,我写了一个数组转换的函数用于在JScript中使用GetRows方法。

复制代码 代码如下:

<script language="JScript" runat="server">

// code by xujiwei

// http://www.xujiwei.cn/

// 定义变量

var conn,rs,vdata,data,recN,i;

// 连接数据库

conn=Server.CreateObject("ADODB.Connection");

conn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+

    Server.MapPath("data.mdb"));

// 获取记录集

rs=conn.Execute("SELECT id,first,second FROM test");

// 获取数据数组,并转换成为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;

// 数组转换函数

// by xujiwei

// 参数:arr - GetRows方法得到的对象用toArray方法得到的数组

//       fieldslen - 数据表字段数

function transArray(arr,fieldslen) {

    var len=arr.length/fieldslen,data=[],sp;

    for(var i=0;i<len;i++) {

        data[i]=new Array();

        sp=i*fieldslen;

        for(var j=0;j<fieldslen;j++)

            data[i][j]=arr[sp+j];

    }

    return data;

}

</script>

对于一些更新频率不高,而使用次数比较多的数据,可以在成功获取数据数组之后,用Application对象来缓存起来,从而减少对数据库的查询次数,一定程序程度上优化ASP的性能。

转地址:http://www.xujiwei.cn/blog/?id=717

asp是编程环境,可以嵌入vbscript或javascript。response,request等是ASP的内置对象,在vbscript和javascript里都可以用,使用的语法遵循所选脚本的语法规则内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 用getstring提高asp的速度
  • asp ado getstring函数与用getstring来提高asp的速度
  • 在asp中通过getrows实现数据库记录分页的一段代码
  • asp中通过getrows实现数据库记录分页的一段代码
  • asp中记录集对象的getrows和getstring用法分析
  • 如何把一长串数字分位显示?
  • 如何制作一个防止多次刷新计数的图片计数器?
  • 在无组件的情况下,如何上传图片?
  • 如何制作一个文本文件编辑器?
  • 如何制作一个倒计时的程序?
  • 如何把recordset转换成彩色的xml文件
  • 如何实现某些页面只让特定的用户浏览?
  • 如何读取一个.ini文件?
  • 如何制作一个弹出式的调查窗口?
  • 如何编写top 10之类的排行榜?
  • 在asp中,如果使用jscript,那么response、request等对象如何使用?
  • 如何在同一个ASP页面中混用VBScript和JScript脚本
  • ASP使用JScript读取QueryString遇到空值的问题?
  • asp中使用VBSCRIPT与JSCRIPT哪个更有效?
  • 怎么学习基于JSCRIPT的ASP
  • 请问ASP数据库交互式页面能全部使用JScript来编写吗?
  • ASP和JScript...
  • 在asp.net中怎样添加jscript文件
  • JScript赋值给asp变量
  • ASP高手进来看看 jscript代码出现了问题
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页编程10000问用getstring提高asp的速度asp ado getstring函数与用getstring来提高asp的速度在asp中通过getrows实现数据库记录分页的一段代码asp中通过getrows实现数据库记录分页的一段代码asp中记录集对象的getrows和getstring用法分析如何把一长串数字分位显示?如何制作一个防止多次刷新计数的图片计数器?在无组件的情况下,如何上传图片?如何制作一个文本文件编辑器?如何制作一个倒计时的程序?如何把recordset转换成彩色的xml文件如何实现某些页面只让特定的用户浏览?如何读取一个.ini文件?如何制作一个弹出式的调查窗口?如何编写top 10之类的排行榜?如何判断电子邮件的地址格式是否oblog_4.6_sql 语句如何阻止别人非法链接你网站的图asp问答集如何在asp里显示进度条?asp中在jscript中使用recordset对禁止站外提交表单(author:killer如何按时间显示最新标志如何远程读取数据库页面?怎样获知数据库的连接属性?如何取回已忘记的密码?如何实时获知多少人在线?如何做一个检索结果带链接的检索?如何简单地上传文件?如何提示用户打开cookie?如何把一长串数字分位显示?如何使用数组来显示下拉菜单?如何实现点击数的计算?asp问答集如何防范利用刷新来“作弊”的计数器?
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved