如何实现SQL Server 2000 分页的存储过程?

此文主要讲述的是SQL Server 2000 分页的存储过程,以及对实现SQL Server 2000 分页的存储过程的实际应用代码的描述,以下就是具体方案的描述,希望在你今后的学习中会有所帮助。

 
 
 
  1. set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go  
  2. set ANSI_NULLS ON  
  3. set QUOTED_IDENTIFIER ON  
  4. go  
  5. /*  

利用SQL未公开的存储过程实现SQL Server 2000分页方法简单且效率高,已知的问题就是要多返回一个空的记录集解决的方法是在前台调用时,用

 
 
 
  1. set recordsetrecordset=recordset.nextrecordset 

的方法跳过***个记录集此方法由J9988提供,改成了方便调用的存储过程,邹建2004.05(引用请保留此信息),缺点是返回2张表,***张是空表,第二张才有数据调用示例

 
 
 
  1. declare @PageCount int  
  2. exec sp_PageView  
  3. @sql='select * from sysobjects',  
  4. @PageCurrent=2,  
  5. @PageCount=@PageCount out  
  6. SELECT @PageCount  
  7. */  
  8. Create PROC [dbo].[sp_PageView]  
  9. @sql ntext, 

要执行的sql语句

@PageCurrent int=1, 要显示的页码

@PageSize int=10, 每页的大小

@PageCount int OUTPUT 总页数

 
 
 
  1. AS  
  2. SET NOCOUNT ON  
  3. DECLARE @p1 int 

初始化SQL Server 2000分页游标

 
 
 
  1. EXEC sp_cursoropen  
  2. @cursor=@p1 OUTPUT,  
  3. @stmt=@sql,  
  4. @scrollopt=1,  
  5. @ccopt=1,  
  6. @rowcount=@PageCount OUTPUT 

 

计算总页数

 
 
 
  1. IF ISNULL(@PageSize,0)<1 
  2. SET @PageSize=10 
  3. SET @PageCount=(@PageCount+@PageSize-1)/@PageSize  
  4. IF ISNULL(@PageCurrent,0)<1 OR ISNULL(@PageCurrent,0)>@PageCount  
  5. SET @PageCurrent=1 
  6. ELSE  
  7. SET @PageCurrent=(@PageCurrent-1)*@PageSize+1 

 

显示指定页的数据

 
 
 
  1. EXEC sp_cursorfetch @p1,16,@PageCurrent,@PageSize 

c关闭SQL Server 2000分页游标

 

 
 
 
  1. EXEC sp_cursorclose @p1 

以上的相关内容就是对SQL Server 2000 分页的存储过程的介绍,望你能有所收获。

【编辑推荐】

  1. SQL Server 字符串在实际操作中的注意事项
  2. SQL Server 连接字符串的一些声明
  3. 链接SQL Server数据库中的字符串经验总结
  4. 链接SQL Server数据库中的字符串经验总结
  5. SQL Server数据库中可用格式字符串干什么?
THE END