asp分頁顯示詳論
來源:互聯網
上載者:User
如果你使用過目前眾多網站上的電子公告板程式的話,那你應該會知道電子公告板程式為了提高頁面的讀取速度,
一般不會將所有的文章全部在一頁中羅列出來,而是將其分成多頁顯示,每頁
顯示一定數目的貼文數,譬如 20 條。想不想瞭解如何?分頁顯示?請看
本文!
那麼究竟如何才能做到將資料庫的查詢結果分頁顯示呢?其實方法有很多,
但主要有兩種:
一、將資料庫中所有符合查詢條件的記錄一次性的都讀入 recordset 中,
存放在記憶體中,然後通過 ADO Recordset 對象所提供的幾個專門支援分頁處
理的屬性: PageSize( 頁大小 )、 PageCount( 頁數目 ) 以及
AbsolutePage( 絕對頁 ) 來管理分頁處理。
二、根據客戶的指示,每次分別從符合查詢條件的記錄中將規定數目的記
錄數讀取出來並顯示。
兩者的主要差別在於前者是一次性將所有記錄都讀入記憶體然後再根據指示
來依次做判斷分析從而達到分頁顯示的效果,而後者是先根據指示做出判斷並
將規定數目的符合查詢條件的記錄讀入記憶體,從而直接達到分頁顯示的功能。
我們可以很明顯的感覺到,當資料庫中的記錄數達到上萬或更多時,第一
種方法的執行效率將明顯低於第二種方法,因為當每一個客戶查詢頁面時都要
將所有合格記錄存放在伺服器記憶體中,然後在進行分頁等處理,如果
同時有超過 100 個的客戶線上查詢,那麼 ASP 應用程式的執行效率將大受
影響。但是,當伺服器上資料庫的記錄數以及同時線上的人數並不是很多時,
兩者在執行效率上是相差無幾的,此時一般就採用第一種方法,因為第一種
方法的 ASP 程式編寫相對第二種方法要簡單明了得多。
在這裡作者就以我們常見的 ASP BBS 程式為例,來給大家分析一下如何
在 BBS 程式裡實現分頁顯示功能,由於我們一般使用的 BBS 程式的資料庫
記錄數和同時訪問的人數都不會太多,所以以下程式執行個體是使用的先前所介紹
的第一種分頁顯示方法。
進行 ADO 存取資料庫時的分頁顯示,其實就是對 Recordset 的記錄
進行操作。所以我們首先必須瞭解 Reordset 對象的屬性和方法:
BOF 屬性:目前指標指到 RecordSet 的第一筆。
EOF 屬性:目前指標指到 RecordSet 的最後一筆。
Move 方法:移動指標到 RecordSet 中的某一條記錄。
AbsolutePage 屬性:設定目前記錄的位置是位於哪一頁