首页 > 开发 > 综合 > 正文

存储过程的分页!!

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开发。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表