/*--分頁存儲過程:*/
CREATE PROCEDURE [dbo].[sp_Pagination]
@sqlstr nvarchar(4000), --查詢字符串
@pageindex int,--第N頁
@pagesize int--每頁行數
AS
BEGIN
set nocount on
declare @P1 int,--P1是遊標的id
@rowcount int
--rowsum:總行數,pagesum:總頁數
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
--select @rowcount as rowsum,ceiling(1.0*@rowcount/@pagesize) as pagesum,@pageindex as currentpage
--獲取數據讀取遊標
set @pageindex=(@pageindex-1)*@pagesize+1
--如果讀取行數大於總記錄數,從第一行數據開始讀取數據
IF @pageindex>@rowcount
begin
set @pageindex=1
end
exec sp_cursorfetch @P1,16,@pageindex,@pagesize
exec sp_cursorclose @P1
END
GO
/*--分頁存儲過程:*/
CREATE PROCEDURE [dbo].[sp_Pagination]
@sqlstr nvarchar(4000), --查詢字符串
@pageindex int,--第N頁
@pagesize int--每頁行數
AS
BEGIN
set nocount on
declare @P1 int,--P1是遊標的id
@rowcount int
--rowsum:總行數,pagesum:總頁數
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
--select @rowcount as rowsum,ceiling(1.0*@rowcount/@pagesize) as pagesum,@pageindex as currentpage
--獲取數據讀取遊標
set @pageindex=(@pageindex-1)*@pagesize+1
--如果讀取行數大於總記錄數,讀取最後一頁數據數據
IF @pageindex>@rowcount
begin
set @pageindex=(ceiling(1.0*@rowcount/@pagesize) -1)*@pagesize+1
end
exec sp_cursorfetch @P1,16,@pageindex,@pagesize
exec sp_cursorclose @P1
END
GO