私の asp + sqlserver ページング プログラム: このプログラムの特徴は、現在のページのレコードをページにドロップすることです。パフォーマンスは良好で、コードはカプセル化されていないため、非常に断片化されているため、簡単に読む必要があります。次に、自分で設定する必要がある場所の意味に注意してください。一部は省略できます。一部のパラメータの受け渡しも省略できます。
コードは次のとおりです:
'''' Saibei の Snow ページング ツール (SQL サーバー) はストアド プロシージャを必要としません --------------------------- ---
'コメントに # があります ## にはユーザー設定が必要です
'パラメータを渡すコメントにパラメータの受け渡し**の記述があります。
'変数を定義する
dim tOption 'クエリ条件
dim tOrder '文字列を並べ替える
dim tOrderField '注文フィールドはパラメータを通じて取得できます: order_field
dim tOrderDirection '並べ替え方向はパラメータを通じて取得できます: order_direction
dim tPageSize 'ページ サイズ
dim tTotalCount 'レコードの総数はパラメータ t_count を通じて取得できます。
dim tPageCount 'ページ数
dim tCurPage '現在のページ番号はパラメータを通じて取得できます: page
dim tTableName 'テーブルまたはビューの名前
dim tFieldAlias '行番号のエイリアス
dim tFieldList 'クエリフィールドリスト
dim tPageField 'ページングに使用されるフィールド
dim r_count '見つかったレコードの数
set rs=server.createobject("adodb.recordset") 'レコードセットオブジェクト
' ソート処理
tOrderField=Request("order_field") '並べ替えフィールドを取得します(パラメータ渡し**)
tOrderDirection=Request("order_dir") '並べ替え方向を取得します (パラメータ渡し**)
if(tOrderField="") then tOrderField="item_code" ' ### デフォルトの並べ替えフィールドを設定します
if(tOrderDirection="") then tOrderDirection="asc" ' ### デフォルトの並べ替え方向を設定します
「www.downcodes.com」
tOrder=" order by " & tOrderField & " " & tOrderDirection & " " 'ソート文字列を生成
'パラメータを定義する
tPageSize=find_rs_count ' ### ページ サイズを設定します
tTableName="view_select1" ' ### テーブルまたはビューの設定とクエリ
tFieldList=" * " ' ### クエリするフィールドのリスト
tPageField="item_code" ' ### ページング計算用の主キーまたは一意のインデックス フィールドを設定します
'ページ処理中
tCurPage=Request("page") '現在のページを取得します(パラメータ渡し**)
tTotalCount=Request("t_count") '総ページ数を取得します(パラメータ渡し**)
if(tCurPage="") then tCurPage=1
if(cint(tCurPage)=0) then tCurPage=1
if(tPageCount="") then tPageCount =1
if(cint(tPageCount)=0) then tPageCount=1
' クエリ条件を作成します。これは特定のプログラムによって異なります。ただし、最後の条件は「どこで??」でなければなりません。
tOption=" issue_flag='Y'" ' ### 条件を設定します
if f_c<>"" then tOPtion= tOPtion & f_c ' ### 条件を設定します
if Trim(tOption)="" then
tOption = " where 1=1 " '条件がない場合は、自分で条件を追加します。
それ以外
tOption= " where " & tOPtion
終了する場合
' このページング プログラムの核となるクエリ文字列を構築します。このクエリ文字列は、現在のページのみをダウンロードするために必要なレコードです。
if(tCurPage>1) then
conStr="select top " & tPageSize & " " & tFieldList & " from " & tTableName & tOption
conStr =conStr & " および " & tPageField & " は含まれていません (select top " & tPageSize*(tCurPage-1) & " " & tPageField & " from " & tTableName & tOption & " " & tOrder & ") " & tOrder
それ以外
conStr="select top " & tPageSize & " " & tFieldList & " from " & tTableName & tOption & " " & tOrder
終了する場合
'メインクエリを実行し、対応するレコードセットを取得します
Call ConnDataBase() ' ### データベース接続を確立します
rs.cursorlocation=3
rs.open conStr,conn,3,1 'クエリを実行
r_count = rs.recordcount
' 総レコード数が問い合わせられておらず、総レコード数がページサイズを超えている場合、現状の総レコード数を問い合わせる
if(r_count>=tPageSize または tCurPage>1) および tTotalCount=0 then
set rr=conn.execute("select count(*) from " & tTableName & " " & tOption)
tTotalCount=rr(0)
rr.close()
setrr=何もしない
終了する場合
if(cint(tTotalCount)=0) then tTotalCount=r_count 'レコードの総数が 0 の場合、現在の差分レコード セット内のレコード数をレコードの総数に設定します。これは、現在のレコードの総数が 未満であることを示します。ページサイズ
'ページサイズとレコードの合計数を使用してページ数を計算します
if(cint(tTotalCount)>cint(tPageSize)) then
tPageCount=cint((cint(tTotalCount) cint(tPageSize)))
if(cint(tTotalCount) mod cint(tPageSize))>0 then
tページ数 =tページ数 +1
終了する場合
終了する場合
tCurPage=cint(tCurPage)
tPageCount=cint(tPageCount)
'------------------------------------------------ - -------------------
これはコード全体です。興味のある方は、それを研究することも、カプセル化して、ページング ナビゲーションやその他のメソッドを追加することもできます。とにかく、このコードが皆さんのお役に立てれば幸いです。