`
xinlanzero
  • 浏览: 252903 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

ASP rs.getrows方法获取记录数

    博客分类:
  • ASP
 
阅读更多

大家可能经常会遇到这种情况:

  1. sql="select * from table" 
  2. set rs=conn.execute(sql) 

以上这两句执行完之后,如果使用response.write rs.recordcount,就会得到结果-1,但这个时候,记录集rs当中其实是有记录的。为了得到正确的记录总数,我们使用getrows.

  1. sql="select * from table" 
  2. set rs=conn.execute (sql)  
  3. arrA=rs.getrows '将记录集放在一个二维数组中  
  4. response.write ubound(arrA,2)+1 

就会得到记录集的记录总数

  1. response.write ubound(arrA,1)+1 

就会得到记录集的总列数
==========================================================

另外,还有一种获取记录总数的方法:

  1. jls= conn.execute("Select count(*) From table").getstring 

这时候,变量jls的值,便是记录总数了
GetRows 方法传回一个二维的阵列变数,每一行对应Recordset中的一笔记录,且每一列对应到记录中的栏位。此方法的语法如下:

  1. varArray = rs.GetRows([Rows], [Start], [Fields])  

Rows 是要读取记录的数量;如果想要取得Recordset所有记录,可用-1或省略此参数。Start 是指出第一个被读取记录的书签;也可以是下列列举常数中的一个:0-adBookmarkCurrent(目前记录)、1-adBookmarkFirst(第一笔记录)、或2-adBookmarkLast(最后记录)。 

Fields 是可选择的栏位名称阵列,其用来限制要读取的资料量。(也可指定单一栏位名称、单一栏位索引、或者一个栏位索引阵列)。当设定 Rows 为少於Recordset记录笔数时,第一笔未读取的记录变成现行记录。若省略 Rows 参数或设定为-1-adGetRowsRest或大於未读取的笔数时,GetRows 方法会读取所有记录并让Recordset在EOF状态,而不会产生任何错误。 

当处理目的变数阵列的资料时,应该记得资料储存方式是有点相反的感觉:阵列中第一维定义Recordset的栏位(资料行),第二维定义Recordset的资料列。以下有个载入Recordset内所有记录某三个栏位的范例: 

  1.   Dim values As Variant, fldIndex As Integer, recIndex As Integer   
  2.   values = rs.GetRows(, , Array("LastName""FirstName""BirthDate"))   
  3.   For recIndex = 0 To UBound(values, 2)   
  4.    For fldIndex = 0 To UBound(values)   
  5.    Print values(fldIndex, recIndex),   
  6.    Next   
  7.    Print   
  8.   Next  

GetRows 方法通常比一次读一笔记录的回圈要来得快些,但使用这方法时,必须确定Recordset未包含太多记录;否则,会很容易以一个非常大的变数阵列来填满所有记忆体。基於相同的原因,得小心不要包括任何BLOB(Binary Large Object)或CLOB(Character Large Object)栏位;若如此做的化,应用程式一定会爆掉,特别是对於较大的Recordset而言。最后,记住此方法传回的变数阵列是以0为基底的;传回记录的笔数是UBound(values,2)+1,传回栏位数是UBound(value, 1)+1。

分享到:
评论

相关推荐

    ASP技巧rs.getrows方法

    假设我们有一个包含学生信息的数据库表`Students`,其中有字段`ID`、`Name`、`Age`等,下面是一个使用`rs.getrows`方法获取前10条记录的例子: ```vb Dim conn, rs, rsArray Set conn = Server.CreateObject("ADODB...

    ASP高级技巧精选集

    一、GetRows的使用方法:<%Set conn=Server.CreateObject(“Adodb.Connection”)conn.Open “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” & Server.Mappath(“test.mdb”)Set Rs=Server....

    ASP读取数据库问题.pdf

    `CancelBatch`取消批量更新,`CancelUpdate`撤销当前记录的更改,`Clone`复制RecordSet,`Delete`删除当前记录,`Move`系列方法用于移动指针,`Open`打开RecordSet,`Update`保存更改,而`GetRows`将记录集中的多行...

    ASP技术常遇问题解答-能说明一下GETROWS的用法吗?.zip

    在ASP中,GETROWS函数通常与ADODB.Recordset对象一起使用,用于将记录集中的数据转换为二维数组,方便进一步处理。这篇文档“ASP技术常遇问题解答-能说明一下GETROWS的用法吗?”很可能详细介绍了GETROWS函数的用法...

    教案ASP读取数据库问题.pdf

    - `rs.MoveFirst`, `rs.MoveLast`, `rs.MovePrev`, `rs.MoveNext`:这些方法用于在记录集中移动指针。 - `rs.GetRows`:将数据批量提取到一个二维数组中。 - `rs.Properties.Count`, `rs.Properties(item).Name`, `...

    asp中记录集对象的getrows和getstring用法分析

    如果没有记录被检索到,或者请求的记录数超出了Recordset中实际存在的记录数,GetRows方法只会返回可用的记录数。 使用GetRows方法时需注意,数组中的第一个下标标识字段,第二个下标标识记录号。调用GetRows方法后...

    ASP生成柱状图

    chartData = "{labels: ['" & Join(rs.GetRows()(0), "','") & "'], datasets: [{label: 'Sales', data: [" & Join(rs.GetRows()(1), ",") & "]}]}" Response.Write "<script>var ctx = document.getElementById('...

    asp静态分页的AJAX实现

    在页面加载时,需要根据总记录数和每页显示的记录数计算出总页数,并创建对应的链接。当用户点击分页链接时,再次触发AJAX请求,加载新的数据。 总结起来,"asp静态分页的AJAX实现"是一个利用ASP处理服务器端逻辑,...

    Asp+SQL导出导入

    在IT行业中,Asp(Active Server Pages)是一种经典的服务器端脚本技术,常用于构建动态网页。配合SQL数据库,Asp可以实现数据的交互和管理。在这个“Asp+SQL导出导入”的主题中,我们将深入探讨如何使用Asp与SQL ...

    asp读取数据库中数据生成统计折线图

    在ASP(Active Server Pages)开发中,生成统计折线图是一项常见的需求,它可以帮助我们以图形化的方式展示从数据库中获取的数据,使分析和理解变得更加直观。本文将深入探讨如何利用ASP来读取数据库中的数据并生成...

    ASP技术下 SQL 导出 生成EXECL文件。

    在ASP中,我们通常使用ADO(ActiveX Data Objects)来执行SQL查询并获取结果集。 要将SQL查询结果导出为Excel文件,我们需要以下步骤: 1. 连接数据库:在ASP中,我们使用ADODB.Connection对象建立到SQL数据库的...

    asp与query结合ajax程序

    response.Write Json_encode(rs.GetRows()) Else response.ContentType = "text/plain" response.Write "No data found." End If rs.Close conn.Close Set rs = Nothing Set conn = Nothing %> ``` 在这个例子中...

    asp+flash幻灯片后台代码

    jsonSerializer.Text = ConvertToJSON(rs.GetRows) %> function sendSlidesToFlash(slides) { document.getElementById("flashMovie").receiveSlides(slides); } sendSlidesToFlash(<%= jsonSerializer.Text %>)...

    ASP源码—AJAX+ASP实现输入框提示.zip

    response.Write "{""suggestions"":[" & Join(rs.GetRows(), ",") & "]}" Set rs = Nothing Set Conn = Nothing ``` 以上就是一个基本的ASP与AJAX交互的框架。实际应用中,还需要考虑错误处理、安全问题(如防止...

    ASP技巧集锦

    ' 使用GetRows方法直接获取记录数组 FetchEmploymentStatusList = rs.GetRows() rs.Close Set rs = Nothing End Function ``` #### 4. Application与Session对象与ADO的协同工作 在实际应用中,Application...

    ajax 简单实例,读取asp动态数据

    data = "{""rows"":[" & Join(rs.GetRows(), ",") & "]}" rs.Close conn.Close Set rs = Nothing Set conn = Nothing Response.Write data ' 返回数据 %> ``` 在这个ASP脚本中,我们创建了一个ADODB连接对象,...

    html连接access数据库的小例子

    Response.Write rs.GetRows() ' 将结果转换为JSON或其他格式并返回 End If rs.Close Set rs = Nothing conn.Close Set conn = Nothing %> ``` 4. **在JavaScript中处理返回的数据**:当ASP返回数据后,JavaScript...

    用存储过程、GetRows()、抽取10万条数据的速度测试

    本文旨在探讨并对比三种不同的方法——普通查询、使用存储过程以及使用GetRows()方法——来从数据库中抽取大量数据时的性能表现。具体而言,我们将通过测试这些方法在处理10万条数据时的执行效率来进行比较分析。 #...

Global site tag (gtag.js) - Google Analytics