• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    把RS.GetRows看得更清楚
    POST TIME:2021-10-18 07:00
    用过Rs.GetRow的兄弟都知道Rs.GetRow可以更有效率地获取小容量数据(不适合大容量数据,尤其涉及大对象的时候,容易暴掉,我就爆过一次),PuterJam应用得不错的说。

    但是Rs.GetRow返回的是一个二维数组,我们经常不知道哪段对哪段。这个很麻烦,于是编了一小段程序方便调试用:


        Dim ds
        Set objRS=objConn.Execute("SELECT * FROM [blog_Upload] WHERE ([ul_Quote] LIKE '%"  CStr(ID)  "%') ")
            ds=objRS.GetRows
        objRS.Close()
        Set objRS=Nothing

    ' 建立一个表格
    Response.Write "Written By Sipo(www.dc9.cn)table align=""center"" border=""1"">"
    Response.Write vbcrlf
    Response.Write "tr>td>/td>"
    For j = 0 To UBound(ds, 1)
    Response.Write "td>ds("j",X)/td>"
    Next
    Response.Write "/tr>"
    ' 每一行
      For i = 0 To UBound(ds, 2)
        Response.Write "tr>td>ds(X,"i")/td>" vbcrlf
        ' 每一列
        For j = 0 To UBound(ds, 1)
          Response.Write "td>"
          If IsNull(ds(j, i)) Then 
          Response.Write "Null"
          Else
          Response.Write ds(j, i)
          End If
          Response.Write "br>"
          Response.Write "b>ds("j","i")/b>"
          Response.Write "/td>"
        Next

        Response.Write "/tr>"  vbcrlf
      Next

      Response.end






    --------------------------------------------------------------------------------

    献给菜鸟们:
    关于GetRows的小资料:


    ADO也提供更有效率方法来取得数据。GetRows 方法传回一个二维的数组变量,每一行对应Recordset中的一笔记录,且每一列对应到记录中的字段。此方法的语法如下: 

    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的数据列。

    GetRows 方法通常比一次读一笔记录的循环要来得快些,但使用这方法时,必须确定Recordset未包含太多记录;否则,会很容易以一个非常大的变量数组来填满所有内存。基于相同的原因,得小心不要包括任何BLOB(Binary Large Object)或CLOB(Character Large Object)字段;若如此做的化,应用程序一定会爆掉,特别是对于较大的Recordset而言。最后,记住此方法传回的变量数组是以0为基底的;传回记录的笔数是UBound(values,2)+1,传回字段数是UBound(value, 1)+1。 
    上一篇:关于asp+access的安全问题分析
    下一篇:asp下UTF-8页面乱码的解决方法
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信