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
怎么操作就不貼了!!大家好好看看,
|