このページでは、0カーソル、つまりrs.open sql、conn、0,1を使用しています。しかし、それがはるかに速いとは感じず、100,000個のデータのページング時間は300秒以上です。
コードコピーは次のとおりです。
<%
'*******************************
'名前:ページネーションクラス
'日付:2005/12/3
'著者:レン・ユエ、Xilou
'ウェブサイト:www.xilou.net | www.chinacms.org
'説明:なし
'著作権:転載の情報源を参照してください、著者
'*******************************
クラスページ
プライベートな通貨
プライベートペーゲン
プライベートURLSTR
プライベートTempstr
private errinfo
プライベートISERR
Private TotalRecord
プライベートトータルページ
パブリックポケット
プライベートテンパ(11)
プライベートTEMPB(8)
'--------------------------------------------------------------------------------------------------------------------------------------
private sub class_initialize()
Currpage = 1 '//現在のページのデフォルト表示は最初のページです
pagen = 10 '//デフォルトの10個のデータがページごとに表示されます
urlstr = "#"
tempstr = ""
errinfo = "errinfo:"
iSerr = false
End Sub
private sub class_terminate()
ISObject(ポケットベル)の場合
pagers.close
ページャー=何も設定しません
ifを終了します
テンパを消去します
tempbを消去します
End Sub
'----------------------------------------------------------------------------------------------------------------------------
'//現在のページ番号を取得します
公共財産let currentPage(val)
Currpage = val
プロパティを終了します
公共財産get currentPage()
currentPage = currpage
プロパティを終了します
'//ページごとに表示されたピースの数を取得します
公共財産let pagenum(val)
pagen = val
プロパティを終了します
公共財産はpagenumを取得します()
Pagenum = Pagen
プロパティを終了します
'// urlを取得します
公共財産let url(val)
urlstr = val
プロパティを終了します
公共財産はurl()を取得します
url = urlstr
プロパティを終了します
'//テンプレートを取得します
公共財産let temp(val)
tempstr = val
プロパティを終了します
公共財産はtempを取得します()
temp = tempstr
プロパティを終了します
'--------------------------------------------------------------------------------------------------------------------------------------
Public Sub Exec(SQL、Connobj)
エラーの再開時に次に再開します
pagers = server.createObject( "adodb.recordset")を設定します
pagers.cursorlocation = 3 'クライアントカーソルを使用すると、効率を向上させることができます
pagers.pagesize = pagen 'ページレコードセットページごとに表示されるレコードの数を定義する
pagers.open sql、connobj、0,1
err.number <> 0の場合
err.clear
pagers.close
ページャー=何も設定しません
errinfo = errinfo& "エラーの作成またはオープニングレコードセット..."
iSerr = true
respons.write errinfo
Response.End
ifを終了します
TotalRecord = pagers.RecordCount '// 0の場合はどうなりますか?
TotalRecord> = 1の場合
' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 始める
'//ページの総数を計算します、PS、Pagers.PageCountを使用してみませんか?
'TotalRecord mod pagen = 0の場合
'TotalPage = Pagers.RecordCount/Pagen
'それ以外
'TotalPage = Pagers.RecordCount/Pagen
'TotalPage = abs(int(totalpage))
'end if
TotalPage = pagers.pagecount
'//現在の受信ページ番号を処理します。デフォルトは1です。したがって、数値タイプでない場合、1になります1
is -numeric(currpage)の場合