Webアプリケーションを構築するには、ページネーションブラウジング機能が不可欠です。この問題は、データベース処理で非常に一般的です。実際、このページネーション方法は、少量のデータにのみ適用できます。間違った新しいテクノロジーチャネルの編集者をフォローして、詳細をご覧ください!
アイデアのソース:
公開テーブルからNTHからMTHまでのレコードを取り出します。
トップM-N+1 *を選択します
パブリッシュから
WHERE(IDではありません
(トップN-1 IDを選択します
出版物から))
以下はストアドプロシージャです。
コードコピーは次のとおりです。手順の作成pagination3
@tblname varchar(255)、 - テーブル名
@StrgetFields varchar(1000)= '*'、 - 返される列
@fldname varchar(255)= ''、 - フィールド名を並べ替えます
@pagesize int = 10、 - ページサイズ
@PageIndex int = 1、 - ページ番号
@docount bit = 0、 - レコードの総数を返し、値が0でない場合に返されます
@OrderType BIT = 0、 - 並べ替えタイプを設定し、値が0でない場合は、順序を下げる
@Strywhere varchar(1500)= '' - クエリ条件(注:場所を追加しないでください)
として
@strsql varchar(5000)を宣言します - 件名ステートメント
@strtmp varchar(110)を宣言 - 一時変数
@Strorder varchar(400)を宣言 - 並べ替えタイプ
@docount!= 0の場合
始める
@strywhere!= 'の場合
@strsql = 'select count(*)を[' + @tblname + ']からselect count(*)をselect
それ以外
@strsql = 'select count(*)を[' + @tblname + ']からselect count(*)'
終わり
- 上記のコードは、@docountのパスを超えていない場合、合計カウントが実行されることを意味します。次のすべてのコードは、@docountが0の場合です。
それ以外
始める
@OrderType!= 0の場合
始める
@strtmp = '<(select min'を設定します
@Strorder = '注文[' + @fldname + '] desc'
- @OrderTypeが0ではない場合、下降順序を実行します。この文は非常に重要です!
終わり
それ以外
始める
@strtmp = '>をset
[' + @fldname +'] asc 'by [' + @fldname + ']を設定します
終わり
@PageIndex = 1の場合
始める
@strywhere!= 'の場合
@strsql = 'Select Top' + str(@pagesize) + '' + @strgetfields + 'from [' + @tblname + '] where' + @Stry + '' + @Strorder
それ以外
@strsql = 'Select Top'+ str(@pagesize)+ ''+ @strgetfields+ 'from ['+ @tblname+ ']'+ @Strorder
- 最初のページの場合、上記のコードを実行して、実行速度を高速化します
終わり
それ以外
始める
@strsql = 'Select Top' + str(@pagesize) + '' +@strgetfields + 'from set
+ @tblname + '] where [' + @fldname + ']' + @strtmp + '(['
+ @fldname + '])from(select top' + str((@pageindex-1)*@pagesize) + '['
+ @fldname + '] from [' + @tblname + ']' + @Strorder + ')as tbltmp)'
+ @Strorder
@strywhere!= 'の場合
@strsql = 'Select Top' + str(@pagesize) + '' +@strgetfields + 'from set
+ @tblname + '] where [' + @fldname + ']' + @strtmp + '(['
+ @fldname + '])from(select top' + str((@pageindex-1)*@pagesize) + '['
+ @fldname + '] from [' + @tblname + '] where' + @Strywhere + ''
+ @Strorder + ')as tbltmp)および' + @Strwhere + '' + @Strorder
終わり
終わり
exec(@strsql)
-print @strsql
行く
The New Technologyチャネルの編集者によって紹介されたコンテンツを通じて、誰もが特定の理解を持っていると思います。より多くの技術的なコンテンツを知りたい場合は、引き続き新しいテクノロジーチャネルに注意を払います!