<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

    導航

    統計

    隨筆分類

    隨筆檔案

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 色噜噜亚洲男人的天堂| 自怕偷自怕亚洲精品| 全部免费毛片在线| 亚洲午夜激情视频| 亚洲精品视频免费看| 精品亚洲福利一区二区| 国产精品黄页免费高清在线观看| 中国黄色免费网站| 国产92成人精品视频免费| 日本二区免费一片黄2019| 亚洲中文字幕无码一区| 亚洲综合久久久久久中文字幕| 久久国产精品成人片免费| 免费人成在线观看播放国产| 成人午夜影视全部免费看| 国产成人精品久久免费动漫| 亚洲福利视频网站| 免费电影在线观看网站| 亚洲国产精品国产自在在线| 亚洲视频精品在线| 美女黄频免费网站| 免费三级毛片电影片| 国产亚洲av片在线观看18女人| 亚洲综合色婷婷在线观看| 韩日电影在线播放免费版| 午夜老司机免费视频| 亚洲综合久久1区2区3区| 毛片大全免费观看| 国产产在线精品亚洲AAVV| 免费无码又黄又爽又刺激| 国产精品自拍亚洲| 亚洲综合图色40p| ww在线观视频免费观看| 亚洲爆乳大丰满无码专区| 91免费资源网站入口| 亚洲激情黄色小说| 韩国日本好看电影免费看| 一本色道久久综合亚洲精品蜜桃冫| 国产精品免费视频网站| 久久精品国产亚洲AV天海翼| 亚洲亚洲人成综合网络|