ado 存取數(shù)據(jù)庫時如何分頁顯示_第1頁
已閱讀1頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、ADOADO存取數(shù)據(jù)庫時如何分頁顯示存取數(shù)據(jù)庫時如何分頁顯示ADO存取數(shù)據(jù)庫時的分頁顯示?如果你使用過目前眾多網(wǎng)站上的電子公告板程序的話,那你應該會知道電子公告板程序為了提高頁面的讀取速度,一般不會將所有的帖子全部在一頁中羅列出來,而是將其分成多頁顯示,每頁顯示一定數(shù)目的帖子數(shù),譬如20條。想不想了解如何實現(xiàn)分頁顯示?請看本文!《動態(tài)網(wǎng)站設計十八般武藝ASP篇》一文從第一期至今已和朋友們一起度過了大半個年頭,相信通過在這一段時間中的學習

2、、實踐到再學習、再實踐,大家已經能夠熟練運用ASP的內建對象、ActiveX組件去編寫一些基本的ASP應用程序。從我收到的朋友們的來信中可以明顯的感覺到,大家的ASP功力正不斷地提升。最近很多朋友來信希望我寫一些ASP在現(xiàn)實運用中的實例。因此,從本期開始我決定將《動態(tài)網(wǎng)站設計十八般武藝ASP篇》的定位從介紹和學習ASP基礎知識轉向到ASP實際運行的探討和深化。應朋友們的要求,在本期中我將給大家著重談一談“ADO存取數(shù)據(jù)庫時如何分頁顯示”

3、的問題。什么是ADO存取數(shù)據(jù)庫時的分頁顯示?如果你使用過目前眾多網(wǎng)站上的電子公告板程序的話,那你應該會知道電子公告板程序為了提高頁面的讀取速度,一般不會將所有的帖子全部在一頁中羅列出來,而是將其分成多頁顯示,每頁顯示一定數(shù)目的帖子數(shù),譬如20條。這就是數(shù)據(jù)庫查詢的分頁顯示,如果你還不明白,去看看yahoo等搜索引擎的查詢結果就會明白了。那么究竟如何才能做到將數(shù)據(jù)庫的查詢結果分頁顯示呢?其實方法有很多,但主要有兩種:一、將數(shù)據(jù)庫中所有符合

4、查詢條件的記錄一次性的都讀入recdset中,存放在內存中,然后通過ADORecdset對象所提供的幾個專門支持分頁處理的屬性:PageSize(頁大小)、PageCount(頁數(shù)目)以及AbsolutePage(絕對頁)來管理分頁處理。二、根據(jù)客戶的指示,每次分別從符合查詢條件的記錄中將規(guī)定數(shù)目的記錄數(shù)讀取出來并顯示。兩者的主要差別在于前者是一次性將所有記錄都讀入內存然后再根據(jù)指示來依次做判斷分析從而達到分頁顯示的效果,而后者是先根據(jù)

5、指示做出判斷并將規(guī)定數(shù)目的符合查詢條件的記錄讀入內存,從而直接達到分頁顯示的功能。我們可以很明顯的感覺到,當數(shù)據(jù)庫中的記錄數(shù)達到上萬或更多時,第一種方法的執(zhí)行效率將明顯低于第二種方法,因為當每一個客戶查詢頁面時都要將所有符合條件的記娣旁詵衿髂詿嬤?,咕忬哉V蟹忠車卻恚綣庇諧100個的客戶在線查詢,那么ASP應用程序的執(zhí)行效率將大受影響。但是,當服務器上數(shù)據(jù)庫的記錄數(shù)以及同時在線的人數(shù)并不是很多時,兩者在執(zhí)行效率上是相差無幾的

6、,此時一般就采用第一種方法,因為第一種方法的ASP程序編寫相對第二種方法要簡單明了得多。在這里作者就以我們常見的ASPBBS程序為例,來給大家分析一下如何在BBS程序里實現(xiàn)分頁顯示功能,由于我們一般使用的BBS程序的數(shù)據(jù)庫記錄數(shù)和同時訪問的人數(shù)都不會太多,所以以下程序實例是使用的先前所介紹的第一種分頁顯示方法。進行ADO存取數(shù)據(jù)庫時的分頁顯示,其實就是對Recdset的記錄進行操作。所以我們首先必須了解Redset對象的屬性和方法:這里

7、的“rs”為一個對象變量,表示一個想要移動當當前記錄位置的Recdset對象;“NumRecds”是一個正負數(shù)運算式,設定當前記錄位置的移動數(shù)目;“start”是一個可選的項目,用來指定記錄起始的標簽。所有的Recdset對象都支持Move方法,如果NumRecds參數(shù)大于零,當前記錄位置向末尾的方向移動;如果其小于零,則當前記錄位置向開頭的方向移動;如果一個空的Recdset對象調用Move方法,將會產生一個錯誤。MoveFirst方

8、法:將當前記錄位置移至第一筆記錄。MoveLast方法:將當前記錄位置移至最后一筆記錄。MoveNext方法:將當前記錄位置移至下一筆記錄。MovePrevious方法:將當前記錄位置移至上一筆記錄。Move[n]方法:移動指標到第n筆記錄,n由0算起。三、AbsolutePage屬性AbsolutePage屬性設定當前記錄的位置是位于哪一頁的頁數(shù)編號;使用PageSize屬性將Recdset對象分割為邏輯上的頁數(shù),每一頁的記錄數(shù)為Pa

9、geSize(除了最后一頁可能會有少于PageSize的記錄數(shù))。這里必須注意并不是所有的數(shù)據(jù)提供者都支持此項屬性,因此使用時要小心。與AbsolutePosition屬性相同,AbsolutePage屬性是以1為起始的,若當前記錄為Recdset的第一行記錄,AbsolutePage為1。可以設定AbsolutePage屬性,以移動到一個指定頁的第一行記錄位置。四、AbsolutePosition屬性若您需要確定目前指標在RecdSe

10、t中的位置,您可以用AbsolutePosition屬性。AbsolutePosition屬性的數(shù)值為目前指標相對於第一筆的位置,由1算起,即第一筆的AbsolutePosition為1。注意在存取RecdSet時,無法保證RecdSet每次都以同樣的順序出現(xiàn)。若要啟用AbsolutePosition,必須先設定為使用用戶端curs(指針),asp碼如下:rs2.CursLocation=3五、PageCount屬性使用PageCoun

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論