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

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

工具/原料粉底、眉笔、眼线笔、眼影、腮红、睫毛膏、睫毛夹、化妆棉等步骤/方法净面之后,先将粉底液上下轻轻摇晃均匀,然后适量取出一些抹在脸上,要用心涂抹均匀哦。职场MM想强调精神的话,眉毛画的时候就要注意啦,眉峰稍稍强烈建造一点,利落的感觉就立马显现出来了。当下大爱的烟熏眼妆并不适合日常的上班,不过眼睛仍然还是要画的,MM们可以用眼线笔细细的画上一遍之后,然后再用眼线液进行描绘,会有非常好的效果。当下大爱的烟熏眼妆并不适合日常的上班,不过眼睛仍然还是要画的,MM们可以用眼线笔细细的画上一遍之后,然后再用眼线液进行描绘,会有非常好的效果。然后再用睫毛夹把睫毛夹长一些,再涂上一层睫毛膏就好。不要太浓

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

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

非4G套餐用户话费会不会更高?此次全面取消手机国内长途费和漫游费,主要会对非4G套餐用户产生影响。国内三大运营商几乎所有4G套餐都采取长途、市话、漫游一体化的资费模式,非4G套餐用户应留心此次调整后的话费变化。部分运营商原有套餐针对本地用户有一定优惠,如在长途费和漫游费取消后,相应套餐发生变化,对于原本没有长途和漫游通话需求的用户群体,可能会带来影响。长途费、漫游费有何区别?很多用户未必能清楚。如果人们在甲地办卡,然后手机拨打电话到乙地,就会被收:长途费。如果甲地用户来到乙地用手机打电话,就被收主叫漫游费;接电话,就被收被叫漫游费。此次新政实施后,移动电话语音资费只剩一种:语音通话主叫费。

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

 日前金立发布的主打安全的“超级续航”手机金立M6就是一款采用大电量锂电池+快充技术方案来解决续航问题的手机。  手机金立M6在配备一块5000mAh的超大容量锂电池(支持反向充电),电池容量远超时下的普通手机(注:普通智能机的电池容量一般为3000mAh左右),就算是那些主打长续航的手机也很少有如此大容量的电池的。值得一提的是金立M6的机身厚度仅8.2mm,虽算不上非常轻薄但在8.2mm的机身里装进5000mAh容量的电池也足见金立在机身设计上的深厚功力。5000mAh超大容量锂电池  光有大电池是不足以解决手机续航问题的,金立M6的amigoOS还内置了智能功耗管理系统,能够根据用户的使用

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

身无彩凤双飞翼,心有灵犀一点通!真爱应该会有一定的默契度!比如喜欢同样的衣服,家居风格和款式。同样的爱好,相处起来才不会很累。一个喜欢养花的人和一个不喜欢养花的人,一个喜欢宠物的人,和一个不喜欢宠物的人,长期相处真的很难…我看到别人穿花花绿绿的衣服也会不喜欢。还有深色系的窗帘被罩真没办法喜欢。没有共同兴趣爱好,有爱也会慢慢靠拢。没爱只会渐行渐远渐无书。正所谓爱屋及乌情人眼里出西施

复制代码 代码如下:

' code by xujiwei

' 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

扩展阅读,根据您访问的内容系统为您准备了以下内容,希望对您有帮助。

VB VB6.0 Recordset对象

这个问题不是VB的问题,建议看下 sql的资料

属性 描述

AbsolutePage 设置或返回一个可指定 Recordset 对象中页码的值。

AbsolutePosition 设置或返回一个值,此值可指定 Recordset 对象中当前记录的顺序位置(序号位置)。

ActiveCommand 返回与 Recordset 对象相关联的 Command 对象。

ActiveConnection 如果连接被关闭,设置或返回连接的定义,如果连接打开,设置或返回当前的 Connection 对象。

BOF 如果当前的记录位置在第一条记录之前,则返回 true,否则返回 fasle。

Bookmark 设置或返回一个书签。此书签保存当前记录的位置。

CacheSize 设置或返回能够被缓存的记录的数目。

CursorLocation 设置或返回游标服务的位置。

CursorType 设置或返回一个 Recordset 对象的游标类型。

DataMember 设置或返回要从 DataSource 属性所引用的对象中检索的数据成员的名称。

DataSource 指定一个包含要被表示为 Recordset 对象的数据的对象。

EditMode 返回当前记录的编辑状态。

EOF 如果当前记录的位置在最后的记录之后,则返回 true,否则返回 fasle。

Filter 返回一个针对 Recordset 对象中数据的过滤器。

Index 设置或返回 Recordset 对象的当前索引的名称。

LockType 设置或返回当编辑 Recordset 中的一条记录时,可指定锁定类型的值。

MarshalOptions 设置或返回一个值,此值指定哪些记录被返回服务器。

MaxRecords 设置或返回从一个查询返回 Recordset 对象的的最大记录数目。

PageCount 返回一个 Recordset 对象中的数据页数。

PageSize 设置或返回 Recordset 对象的一个单一页面上所允许的最大记录数。

RecordCount 返回一个 Recordset 对象中的记录数目。

Sort 设置或返回一个或多个作为 Recordset 排序基准的字段名。

Source 设置一个字符串值,或一个 Command 对象引用,或返回一个字符串值,此值可指示 Recordset 对象的数据源。

State 返回一个值,此值可描述是否 Recordset 对象是打开、关闭、正在连接、正在执行或正在取回数据。

Status 返回有关批更新或其他大量操作的当前记录的状态。

StayInSync 设置或返回当父记录位置改变时对子记录的引用是否改变。

方法

  方法 描述

AddNew 创建一条新记录。

Cancel 撤销一次执行。

CancelBatch 撤销一次批更新。

CancelUpdate 撤销对 Recordset 对象的一条记录所做的更改。

Clone 创建一个已有 Recordset 的副本。

Close 关闭一个 Recordset。

CompareBookmarks 比较两个书签。

Delete 删除一条记录或一组记录。

Find 搜索一个 Recordset 中满足指定某个条件的一条记录。

GetRows 把多条记录从一个 Recordset 对象中拷贝到一个二维数组中。

GetString 将 Recordset 作为字符串返回。

Move 在 Recordset 对象中移动记录指针。

MoveFirst 把记录指针移动到第一条记录。

MoveLast 把记录指针移动到最后一条记录。

MoveNext 把记录指针移动到下一条记录。

?NextRecordset ?通过执行一系列命令清除当前 Recordset 对象并返回下一个 Recordset

MovePrevious 把记录指针移动到上一条记录。

Open 打开一个数据库元素,此元素可提供对表的记录、查询的结果或保存的 Recordset 的访问。

Requery 通过重新执行对象所基于的查询来更新 Recordset 对象中的数据。

Resync 从原始数据库刷新当前 Recordset 中的数据。

Save 把 Recordset 对象保存到 file 或 Stream 对象中。

Seek 搜索 Recordset 的索引以快速定位与指定的值相匹配的行,并使其成为当前行。

Supports 返回一个布尔值,此值可定义 Recordset 对象是否支持特定类型的功能。

Update 保存所有对 Recordset 对象中的一条单一记录所做的更改。

UpdateBatch 把所有 Recordset 中的更改存入数据库。请在批更新模式中使用。

事件

  Note: You cannot handle events using VBScript or JScript (only Visual Basic, Visual C++, and Visual J++ languages can handle events).事件 描述

EndOfRecordset 当试图移动到超过 Recordset 结尾的行时被触发。

FetchComplete 当异步操作中的所有记录均被读取后被触发。

FetchProgress 在异步操作期间被定期地触发,报告已读取多少记录。

FieldChangeComplete Field 对象的值更改被触发。

MoveComplete Recordset 中的当前位置更改后被触发。

RecordChangeComplete 一条记录更改之后被触发。

?WillChangeField ?在 Field 对象的值更改之前被触发

RecordsetChangeComplete 在 Recordset 更改之后被触发。

WillChangeRecord 在一条记录更改之前被触发。

WillChangeRecordset 在 Recordset 更改之前被触发。

WillMove 在 Recordset 中的当前位置更改之前被触发。

集合

  集合 描述

Fields 指示在此 Recordset 对象中 Field 对象的数目。

Properties 包含所有 Recordset 对象中的 Property 对象。

参考资料:http://baike.baidu.com/view/2023989.htm


  • 本文相关:
  • w3c group的javascript1.8 新特性介绍
  • javascript setattribute, getattribute 在不同浏览器上的不同表现
  • javascript1.6数组新特性介绍以及jquery的几个工具方法
  • js的get和set使用示例
  • javascript中的__definegetter__和__definesetter__介绍
  • javascript中的gettimezoneoffset()方法使用详解
  • angularjs 2.0新特性有哪些
  • 探讨:javascript ecamscript5 新特性之get/set访问器
  • 如何使用数组来显示下拉菜单?
  • 如何实现歌曲在线点播?
  • 如何在读取excel文件时创建列表的下拉菜单?
  • 如何做一个随机密码产生器?
  • 如何用表单在线建立目录?
  • 如何简单地上传文件?
  • 如何向前端推送用户请求的信息?
  • 如何实现全文检索?
  • 如何用htmlencode来显示unicode?
  • 如何验证ip地址?
  • VB VB6.0 Recordset对象
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页编程10000问w3c group的javascript1.8 新特性介绍javascript setattribute, getattribute 在不同浏览器上的不同表现javascript1.6数组新特性介绍以及jquery的几个工具方法js的get和set使用示例javascript中的__definegetter__和__definesetter__介绍javascript中的gettimezoneoffset()方法使用详解angularjs 2.0新特性有哪些探讨:javascript ecamscript5 新特性之get/set访问器如何使用数组来显示下拉菜单?如何实现歌曲在线点播?如何在读取excel文件时创建列表的下拉菜单?如何做一个随机密码产生器?如何用表单在线建立目录?如何简单地上传文件?如何向前端推送用户请求的信息?如何实现全文检索?如何用htmlencode来显示unicode?如何验证ip地址?如何判断电子邮件的地址格式是否oblog_4.6_sql 语句如何阻止别人非法链接你网站的图asp问答集如何在asp里显示进度条?asp中在jscript中使用recordset对禁止站外提交表单(author:killer如何按时间显示最新标志如何远程读取数据库页面?怎样获知数据库的连接属性?如何编写一个加法器?如何判断用户是否非正常离开聊天室?怎样使用cookie跟踪来访者?如何检测用户第一次访问我的网站并显示友如何用表单的方式推送请求的信息?如何实时获知多少人在线?如何判断电子邮件的地址格式是否正确?如何在asp中恰当地运用cookies?可以在线创建文件夹吗?如何让用户也能修改密码?
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved