create proc SqlPager
@sqlstr nvarchar(4000),--查询字符串
@currentpage int,--第N页
@pagesize int,--每页行数
@pagecount int output --总页数
as
set nocount on
declare @P1 int,--P1是游标的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select @pagecount = cast(ceiling(1.0*@rowcount/@pagesize) as int)--as 总页数--,@rowcountas总行数,@currentpageas当前页
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off
go
本文介绍了一种使用SQL存储过程实现数据分页的方法。通过定义输入参数如查询字符串、当前页码及每页显示的记录数等,该存储过程能够高效地返回指定页的数据记录。此外,还提供了计算总页数的功能。

被折叠的 条评论
为什么被折叠?



