用服务器光标分页
CREATE PROC GetList2
(
@iCurPage INT,
@iPageSize INT
)
AS
-- local vars
DECLARE @total INT
DECLARE @start INT
DECLARE @end INT
DECLARE @maxid INT
DECLARE @minid INT
--SET @iPageSize = 10
--SET @iCurPage = 1
SET @start = (@iCurPage-1) * @iPageSize + 1
SET @end = @start + @iPageSize - 1
DECLARE pagecursor CURSOR SCROLL FOR
SELECT ProductID FROM Products ORDER BY ProductID DESC
OPEN pagecursor
SET @total = @@CURSOR_ROWS
FETCH ABSOLUTE @start FROM pagecursor INTO @minid
IF @end > @total
FETCH LAST FROM pagecursor INTO @maxid
ELSE
FETCH ABSOLUTE @end FROM pagecursor INTO @maxid
CLOSE pagecursor
DEALLOCATE pagecursor
SELECT *
FROM Products
WHERE ProductID BETWEEN @maxid AND @minid
ORDER BY ProductID DESC
--使用方法
USE NorthWind
EXEC GetList2 1,10
posted on 2004-07-23 12:07 HelloSnoopy 阅读(437) 评论(0) 收藏 举报
浙公网安备 33010602011771号