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

來源:互聯網
上載者:User
oracle|分頁|資料|顯示 一、引言



通過瀏覽器訪問資料量大的表時需要進行分頁。ASP對資料庫記錄分頁顯示可以通過ADO對象集Recordset對象來實現。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)



<html>



<head>



<title>設定檔表</title>



</head>



<%



sql = "Select * From data" //sql語句,從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



//以下讓紀錄指標越過輸



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.