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 @intRowCountint /*关闭计数*/ set nocount on
/*求总共根贴数*/ select @intRootRecordCount = count(*) from bbs_topic where fatherid=0 and forumid=@a_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 forumid=@a_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 forumid=@a_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 Forumid=@a_strForumID and a.rootid between @intEndID and @intBeginID order by a.rootid desc , a.ordernum desc return(@@rowcount) --select @@rowcount go
怎么操作就不贴了!!大家好好看看,
|