利用ASP實現Oracle資料記錄的分頁顯示

fanhongjie發表於2009-09-29

作者:chinaitlab.com 出處:chinaitlab.com 更新時間:2008-08-07 責任編輯:seward

一、引言

通過瀏覽器訪問資料量大的表時需要進行分頁。ASP對資料庫記錄分頁顯示可以通過ADO物件集Recordset物件來實現。

[@more@]Recordset具有以下幾個用於分頁顯示的屬性:

PageSize:每頁顯示的記錄數。

PageCount:根據使用者設定好的PageSize和表中的總記錄數,系統自動算出總頁數。RecordCount:表中的總記錄數。

AbsolutePage:表示當前頁碼。如將AbsolutePage屬性設為3,則當前記錄移至第3頁第1條(也就是第31條)。

知道Recordset具有這幾個屬性後,相信大家都覺得實現記錄的分頁顯示是很簡單的。先開啟資料庫及表,再設定好PageSize和AbsolutePage,最後將記錄資料輸出到瀏覽器,就可以大功告成。誠然,使用Access或SQL server作資料庫時,就這麼簡單,因為這兩種資料庫都支援Recordset的這幾個用於分頁的屬性。與Access或SQL server相比,Oracle資料庫提供更好的安全性,並且在資料量極大的情況下效能佔優,然而Oracle並不支援這些分頁屬性。本文將介紹一種利用ASP實現對Oracle資料記錄分頁顯示的方法,使得Oracle使用者能夠輕鬆方便地實現記錄分頁顯示。

二、實現過程分析

1、 建立資料來源:

安裝Oracle客戶端軟體,通過microsoft odbc for oracle驅動程式建立DSN如:"DSN=servername;UID=user;PWD=password " 。

2、 建立資料表:

簡單的個人資料表結構如下(表名為data):

data:name,Varchar2;telephone,Number;email,Varchar2;

3、程式程式碼分析(在此只分析記錄顯示程式display.asp):



個人資料表 


//以下顯示錶頭

個人資料表

"" then CurrentPageNumber=CLng(Request("CurrentPageNumber")) end if //因為預設頁號從0開始,所以要將引數減1 CurrentPageNumber=CurrentPageNumber-1 //以下計算總的記錄條數 TotalRrecord=0 While (not Rs.EOF) Rs.MoveNext TotalRecord=TotalRecord+1 Wend //以下計算總頁數TotalPageNumber if (TotalRecord mod RecordsPerPage)=0 then TotalPageNumber=(TotalRecordRecordsPerPage) else TotalPageNumber=((TotalRecordRecordsPerPage)+1) end if //如果輸入頁號引數小於0,則顯示首頁 If CurrentPageNumber<0 Then CurrentPageNumber=0 end if //如果輸入頁號引數大於總頁數減1,則顯示最後一頁 if CurrentPageNumber>(TotalPageNumber-1) Then CurrentPageNumber=(TotalPageNumber-1) end if //記錄指標返回到第一個記錄 Rs.movefirst //以下讓紀錄指標越過輸入頁號以前的記錄,走到當前頁的第一個紀錄 PASSNUMBER = CurrentPageNumber*RecordsPerPage for i=0 to PASSNUMBER -1 Rs.movenext next INDEX = PASSNUMBER + 1 NUMBER = 1 //NUMBER為計數器 //以下顯示當前頁的表內容 While (not Rs.EOF)and (NUMBER <= RecordsPerPage) %> //編號 //姓名 //電話 //電子郵件
編號 姓名 電話 E-mail
//以下表單實現頁碼導航
0 Then // 來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/73920/viewspace-1027503/,如需轉載,請註明出處,否則將追究法律責任。
下一篇: aix下忘記root密碼
利用ASP實現Oracle資料記錄的分頁顯示
請登入後發表評論 登入
全部評論

相關文章