数据库分页

CREATE PROCEDURE dbo.log_login_get ----名称自定:)
@page int,   --当前页
@page_size int  --每页数量
 AS
 declare @intBeginID int
 declare @intEndID int
 declare @intMaxCount int  --分页记录总数
 declare @intPageCount int  --
 declare @intRowCount int
 declare @intMaxPage int  --总页数
 set nocount on
 select @intMaxCount=count(*) from log_login  --改成你要分页的源表
 if(@intMaxCount=0)
 return 0
 set @intMaxPage=Round((@intMaxCount/@page_size),0)
 if(@page-1>@intMaxPage)
 select @page=@intMaxPage+1
 if(@page<1)
 select @page=1
 set @intRowCount=(@page-1)*@page_size+1 --计算第一条的位置
--print @intRowCount
 set rowcount @intRowCount  ---这是关键,定义一个行跨度,即将指针移动到第一条的地方
 select @intBeginId=id from log_login order by id desc
--print @intBeginId
 select @intRowCount=@page*@page_size --计算最后一条的位置
 --print @intRowCount
 set rowcount @intRowCount 
 select @intEndId=id from log_login order by id desc 
--print @intEndId
 set rowcount 0
 set nocount off
 select * from log_login where id between  @intEndId and @intBeginId order by id desc
GO

posted on 2005-10-08 11:02  娃娃鱼  阅读(53)  评论(0)    收藏  举报

导航