標籤:
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使用者能夠輕鬆方便地實現記錄分頁顯示。 二、實現過程分析
<%
sql = "Select * From data"
Set conn = Server.CreateObject("ADODB.Connection")
Cnn.Open "dsn=servername;uid=user;pwd=password;"
Set Rs = Server.CreateObject("ADODB.Recordset")
Rs.CursorType = 3
Rs.LockType = 3
Rs.Open sql, conn //如果沒有記錄,就退出
If Rs.EOF Then
Response.End
End If
%>
//以下顯示表頭
<p align="center">設定檔表<br></p>
<div align="center">
<center>
<table border="1" width="560" cellspacing="0" cellpadding="0">
<tr>
<td width="140" align="center">編號</td>
<td width="140" align="center">姓名</td>
<td width="140" align="center">電話</td> <td width="140" align="center">E-mail</td>
</tr>
<%
RecordsPerPage=10 //設定每頁顯示記錄數為10條記錄
CurrentPageNumber=0 //設定當前頁號為0
INDEX=1 //設定記錄編號為1
//如果當前頁號參數不為空白,則將其類型轉換為長整型,並調用該參數
if Request.QueryString("CurrentPageNumber") <> "" 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=(TotalRecord/RecordsPerPage)
else
TotalPageNumber=((TotalRecord/RecordsPerPage) 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)
%>
<tr>
<td width="140" align="center"><%Response.Write (INDEX)%></td> //編號
<td width="140" align="center"><%Response.Write Rs("name")%></td> //姓名
<td width="140" align="center"><%Response.Write Rs("telephone")%></td> //電話
<td width="140" align="center"><%Response.Write Rs("email")%></td> //電子郵件
</tr>
<%
Rs.MoveNext
INDEX = INDEX 1 //編號加1
NUMBER = NUMBER 1 //計數器加1
Wend
Rs.close
%>
</table>
</center>
</div>
</html>
//以下表單實現頁碼導航
<% pageName="display.asp" %>
<FORM Action=<%= pageName%> Method=GET>
<%
If CurrentPageNumber<>0 Then
%>
<A HREF=<%= pageName%>?CurrentPageNumber=1>第一頁</A>
<A HREF=<%= pageName%>?CurrentPageNumber=<%=(CurrentPageNumber)%>>上一頁</A>
<%
End If
If CurrentPageNumber<>( TotalPageNumber -1) Then
%>
<A HREF=<%= pageName%>?CurrentPageNumber=<%=(CurrentPageNumber 2)%>>下一頁</A>
<A HREF=<%= pageName%>?CurrentPageNumber=<%=(TotalPageNumber)%>>最後一頁</A>
<%
End If
%>
輸入頁碼:<INPUT TYPE=TEXT Name=CurrentPageNumber>現在處於第<%=(CurrentPageNumber 1)%>頁/共<%=TotalPageNumber%>頁
[轉]asp+oracle分頁