<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    通用分頁存儲過程(原創)

     這是我項目中使用的一個分頁存儲過程,具有很強的通用性。配合前臺ASP.NET使用50萬條數據基本感不到延遲。數據庫為SQLServer2000。

    1.分頁存儲過程

    CREATE   procedure pagination

     @str_sql           varchar(1000) = '*',     -- 執行的SQL 不含Order by 內容  
     @str_orderfield    varchar(255)='''',       -- 排序的字段名 
     @page_size         int = 10,                     -- 頁大小 
     @page_index        int = 0,                      -- 頁碼
     @order_type        int,                           -- 設置排序類型, 非 -1 值則降序 
     @total_count       int   output                 -- 返回記錄總數, 非 0 值則返回 
    as

    ---------------------
    -- 獲取指定頁的數據--
    ---------------------

    declare @strsql   varchar(5000)              -- 主語句
    declare @strtmp   varchar(5000)             -- 臨時變量
    declare @strorder varchar(400)              -- 排序字串
    declare @cruRow   int                            -- 當前行號
     

    --執行總數統計
    exec getRowCount @str_sql,@total_count output

    set @strtmp =  ' select * from ' +
            '      (select top ' + convert(varchar(10),@page_size) + ' * from ' +
            '         (select top ' + convert(varchar(10),(@page_index + 1) * @page_size)  +' * from '+        -- N+1頁
            '            ('+ @str_sql +') Src '

    --排序方向
    if @order_type !=0
     begin
     set @strsql= @strtmp +
           '          order by @str_orderfield asc) a ' +
           '       order by @str_orderfield desc)b' +
                  ' order by @str_orderfield asc'
     end
    else
     begin
     set @strsql= @strtmp +
           '          order by @str_orderfield desc) a ' +
           '       order by  @str_orderfieldasc)b' +
                  ' order by  @str_orderfield desc'
     end

    exec (@strsql)

    GO

    ----------------------------------------------------------------------------

    2.分頁存儲過程執行中用到的行數統計

    create  procedure getRowCount
           @sql    nvarchar(2000),
           @count  int output
    as
    begin

    --------------------
    -- 獲取數據總行數 --
    --------------------

      declare @tmpsql nvarchar(2000)
      set @tmpsql='select @count=count(*)  from ('+ @sql +') a'

      execute sp_executesql @tmpsql,N'@count int output',@count output
     
    end

    GO

    posted on 2008-01-10 17:08 靈! 閱讀(514) 評論(0)  編輯  收藏 所屬分類: Java專題-分頁技術


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2008年1月>
    303112345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    導航

    統計

    隨筆分類

    隨筆檔案

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产情侣一区二区三区| 久久亚洲国产成人亚| 亚洲一区中文字幕在线观看| 人人揉揉香蕉大免费不卡| 亚洲精品国产品国语在线| 三年片免费观看大全国语| 丁香五月亚洲综合深深爱| 精品97国产免费人成视频| 亚洲乱码日产一区三区| 久久99毛片免费观看不卡| 国产精品亚洲аv无码播放| 中文字幕无码毛片免费看| 国产成A人亚洲精V品无码| 久久久久久影院久久久久免费精品国产小说 | 亚洲s色大片在线观看| 免费人成毛片动漫在线播放| 亚洲韩国—中文字幕| 97国产在线公开免费观看| 亚洲国产电影在线观看| 夭天干天天做天天免费看| 美女被免费网站视频在线| 亚洲午夜精品久久久久久浪潮| 国产一级a毛一级a看免费视频| 亚洲视频在线一区| 少妇高潮太爽了在线观看免费| 亚洲日韩一区精品射精| 亚洲国产精品专区在线观看| a级毛片免费高清毛片视频| 亚洲成a人片77777群色| 国产在线ts人妖免费视频| 中国一级全黄的免费观看| 亚洲色成人网一二三区| 日本黄页网站免费| 黄色网址免费在线观看| 亚洲国产精品日韩在线| 国产v片免费播放| 久久青草免费91线频观看不卡 | 亚洲色欲啪啪久久WWW综合网| 亚洲成年看片在线观看| 十八禁无码免费网站| 亚洲av中文无码字幕色不卡|