2005儲存過程分頁修改版

2021-05-21 20:20:47 字數 1567 閱讀 6039

set ansi_nulls on

set quoted_identifier on

goalter procedure [dbo].[pager_pagination]

@sql nvarchar(max),  --sql語句不包括排序

@curpage int,    --當前頁

@pagerows int,    --頁面尺寸

@order nvarchar(100),  --排序字段

@ordertype nvarchar(10) --排序型別倒序desc或正序asc

asbegin

set nocount on;

declare @excesql nvarchar(4000)

declare @totalrecorder int

--設定開始行號

declare  @start_row_num as int

declare  @end_row_num as int

if(@curpage=1)

begin

set @start_row_num = (@curpage - 1) * @pagerows

set @end_row_num = @start_row_num+@pagerows

endelse

begin

set @start_row_num = ((@curpage - 1) * @pagerows)+1

set @end_row_num = (@start_row_num+@pagerows)-1

end

--設定表示

declare @rownumber nvarchar(500)

set @rownumber = ', row_number() over(order by ' + @order +' '+ @ordertype + ') as rownumber '

set @sql = stuff(@sql,charindex ('from', @sql)-1,1,@rownumber)

--set @sql = replace(@sql,' from ',@rownumber)

--獲得總記錄數

set @excesql = 'with tmp as (' + @sql + ')

select @totalrecorder=max(rownumber) from tmp'

execute sp_executesql @excesql,n'@totalrecorder int output',@totalrecorder output

--查詢語句

set @excesql = 'with tmp as (' + @sql + ')

select * from tmp where rownumber between ' + convert(nvarchar,@start_row_num)

+ ' and ' + convert(nvarchar,@end_row_num)

execute(@excesql)

select @totalrecorder as totalrecorder

end

多檔案修改版

這是繼上乙個錯誤之後,張玉老師給修改的,一開始我的類物件宣告是全域性變數,所以多檔案了以後,求周長那裡就出了問題。這一版不但解決了問題,更是幫我省出了很大的空間,身為類成員的兩個函式代替了六個資料成員,留出了空間,程式也不那麼亂七八糟了。棒!程式 main 作 者 趙玲玲 完成日期 2014 年 4...

佛緣(結局修改版)

闌珊因不滿前一篇的結局部份,所有才有了這個補丁,當然得轉過來。闌珊的文字功底的確n8錯,似乎她可以去維護世界和平了,呵呵!佛緣 修改版sp20061006 我才知道佛祖的法力早已突飛猛進,塵世浮游,他都能看得一清二楚了,而我也在他的手上,看世事變遷,只是,無論如何,都回不到曾經平淡的心境了。曾幾何時...

模板匹配 Match Template 修改版

修改者 madturtle 對於王先生的版本進行了修改,因為有些地方不對。模板匹配的工作方式 模板匹配的工作方式跟直方圖的反向投影基本一樣,大致過程是這樣的 通過在輸入影象上滑 像塊對實際的影象塊和輸入影象進行匹配。假設我們有一張100x100的輸入影象,有一張10x10的模板影象,查詢的過程是這樣...