此文主要讲述的是SQL Server 2000 分页的存储过程,以及对实现SQL Server 2000 分页的存储过程的实际应用代码的描述,以下就是具体方案的描述,希望在你今后的学习中会有所帮助。
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go /*
利用SQL未公开的存储过程实现SQL Server 2000分页方法简单且效率高,已知的问题就是要多返回一个空的记录集解决的方法是在前台调用时,用
set recordsetrecordset=recordset.nextrecordset
的方法跳过第一个记录集此方法由J9988提供,改成了方便调用的存储过程,邹建2004.05(引用请保留此信息),缺点是返回2张表,第一张是空表,第二张才有数据调用示例
declare @PageCount int exec sp_PageView @sql='select * from sysobjects', @PageCurrent=2, @PageCount=@PageCount out SELECT @PageCount */ Create PROC [dbo].[sp_PageView] @sql ntext,
要执行的sql语句
@PageCurrent int=1, 要显示的页码
@PageSize int=10, 每页的大小
@PageCount int OUTPUT 总页数
AS SET NOCOUNT ON DECLARE @p1 int
初始化SQL Server 2000分页游标
EXEC sp_cursoropen @cursor=@p1 OUTPUT, @stmt=@sql, @scrollopt=1, @ccopt=1, @rowcount=@PageCount OUTPUT
计算总页数
IF ISNULL(@PageSize,0)<1 SET @PageSize=10 SET @PageCount=(@PageCount+@PageSize-1)/@PageSize IF ISNULL(@PageCurrent,0)<1 OR ISNULL(@PageCurrent,0)>@PageCount SET @PageCurrent=1 ELSE SET @PageCurrent=(@PageCurrent-1)*@PageSize+1
显示指定页的数据
EXEC sp_cursorfetch @p1,16,@PageCurrent,@PageSize
c关闭SQL Server 2000分页游标
EXEC sp_cursorclose @p1
以上的相关内容就是对SQL Server 2000 分页的存储过程的介绍,望你能有所收获。