存儲過程的分頁!!
2024-07-21 02:22:36
供稿:網友
create proc up_gettopiclist
@a_strforumid varchar(50) ,
@a_intpageno int ,
@a_intpagesize int
as
/*定義局部變量*/
declare @intbeginid int
declare @intendid int
declare @introotrecordcount int
declare @intpagecount int
declare @introwcount int
/*關閉計數*/
set nocount on
/*求總共根貼數*/
select @introotrecordcount = count(*) from bbs_topic where fatherid=0 and [email protected]_strforumid
if (@introotrecordcount = 0) --如果沒有貼子,則返回零
return 0
/*判斷頁數是否正確*/
if (@a_intpageno - 1) * @a_intpagesize > @introotrecordcount
return (-1)
/*求開始rootid*/
set @introwcount = (@a_intpageno - 1) * @a_intpagesize + 1
/*限制條數*/
set rowcount @introwcount
select @intbeginid = rootid from bbs_topic where fatherid=0 and [email protected]_strforumid
order by tid desc
/*結束rootid*/
set @introwcount = @a_intpageno * @a_intpagesize
/*限制條數*/
set rowcount @introwcount
select @intendid = rootid from bbs_topic where fatherid=0 and [email protected]_strforumid
order by tid desc
/*恢復系統變量*/
set rowcount 0
set nocount off
select a.tid , a.layer , a.forumid , a.subject , a.faceid , a.hits , a.posttime , a.userid , a.fatherid , a.rootid ,
'bytes' = datalength(a.content) , b.loginname , b.email , b.homepage , b.signature , b.point
from bbs_topic as a join bbs_user as b on a.userid = b.uid
where [email protected]_strforumid and a.rootid between @intendid and @intbeginid
order by a.rootid desc , a.ordernum desc
return(@@rowcount)
--select @@rowcount
go
怎么操作就不貼了!!大家好好看看,,歡迎訪問網頁設計愛好者web開發。