如何實現SQL Server 2000 分頁的存儲過程?
此文主要講述的是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 分頁的存儲過程的介紹,望你能有所收獲。
【編輯推薦】