熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

ASP的NextRecordset和GetRows方法

2013-11-13 10:36:20  來源: .NET編程 

  NextRecordset和GetRows是RecordSet的兩個屬性對提高批量查詢速度很有效果大家可能用的很少分享一下這兩個方法的用法

  GetRows方法將RecordSet記錄集提取到一個二維數組中我們對RecordSet數據的行為就轉移到該數組可以早早的斷開紀錄集不用再使用源數據操作rsmovnext while not rseof等可以省掉

  NextRecordset方法一次提交多個查詢形成多個RecordSet結果集的情況下提供一個離開當前工作的RecordSet轉移到下一個RecordSet的方法主要是用在多個select形成的結果集的情況示例如下

  查詢記錄

  set rs=connexecute(“select CaCaCaCa from TableA select CbCbCbCbCb from TableB”)

  ‘執行後將產生兩個select的結果集當前第一個select的RecordSet處於激活狀態

  arrA=rsGetRows’取得第一個查詢結果的二維數組

  set rs=rsNextRecordset‘激活下一個RecordSet

  arrB=rsGetRows’取得第二個查詢結果的二維數組

  set rs=nothing‘釋放數據庫對象

  這樣我們所有關於數據庫的數據提取完成用最早的時間釋放數據庫資源

  注意GetRows方法得到的數組第一維代表列第二維代表行

  For i= to UBound(arrA

  responsewrite(“<tr>”)

  responsewrite(“<td>字段”&arrA(i)&“</td>”)

  responsewrite(“<td>字段”&arrA(i)&“</td>”)

  responsewrite(“<td>字段”&arrA(i)&“</td>”)

  responsewrite(“<td>字段”&arrA(i)&“</td>”)

  responsewrite(“</tr>”)

  Next

  responsewrite(“</table>”)

  ’第二個select表循環

  responsewrite(“<p>表二</p><table>”)

  For i= to UBound(arrB

  responsewrite(“<tr>”)

  responsewrite(“<td>字段”&arrB(i)&“</td>”)

  responsewrite(“<td>字段”&arrB(i)&“</td>”)

  responsewrite(“<td>字段”&arrB(i)&“</td>”)

  responsewrite(“<td>字段”&arrB(i)&“</td>”)

  responsewrite(“<td>字段”&arrB(i)&“</td>”)

  responsewrite(“</tr>”)

  Next

  responsewrite(“</table>”)

  優點

  使用NextRecordSet可以處理多個select語句一次發送形成的結果集減少網絡流量必定加快速度!

  使用GetRows將記錄集提取到數組中(內存操作因此記錄集不能太大)用內存的數組工作而且省掉eofMoveNext等判斷速度更快!

  最最主要的我們利用上二者一次性將所有的數據提完快速斷開數據庫連接和銷毀建立的RecordSet數據庫對象大大減少網絡流量!性能自然要提高很多!


From:http://tw.wingwit.com/Article/program/net/201311/14101.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.