ASP rs.getrows方法擷取記錄數

來源:互聯網
上載者:User

 大家可能經常會遇到這種情況:

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

以上這兩句執行完之後,如果使用response.write rs.recordcount,就會得到結果-1,但這個時候,記錄集rs當中其實是有記錄的。為了得到正確的記錄總數,我們使用getrows.

sql="select * from table" set rs=conn.execute (sql)  arrA=rs.getrows '將記錄集放在一個二維數組中  response.write ubound(arrA,2)+1 

就會得到記錄集的記錄總數

response.write ubound(arrA,1)+1 

==========================================================

另外,還有一種擷取記錄總數的方法:

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

這時候,變數jls的值,便是記錄總數了
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的資料列。以下有個載入Recordset內所有記錄某三個欄位的範例: 

Dim values As Variant, fldIndex As Integer, recIndex As Integer     values = rs.GetRows(, , Array("LastName", "FirstName", "BirthDate"))     For recIndex = 0 To UBound(values, 2)      For fldIndex = 0 To UBound(values)      Print values(fldIndex, recIndex),      Next      Print     Next  

GetRows 方法通常比一次讀一筆記錄的迴圈要來得快些,但使用這方法時,必須確定Recordset未包含太多記錄;否則,會很容易以一個非常大的變數陣列來填滿所有記憶體。基於相同的原因,得小心不要包括任何BLOB(Binary Large Object)或CLOB(Character Large Object)欄位;若如此做的化,應用程式一定會爆掉,特別是對於較大的Recordset而言。最後,記住此方法傳回的變數陣列是以0為基底的;傳回記錄的筆數是UBound(values,2)+1,傳回欄位元是UBound(value, 1)+1。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.