您的位置:首页技术开发ASP技巧 → 关于分页办法

关于分页办法

时间:2004/11/7 4:11:00来源:本站整理作者:蓝点我要评论(0)

时间关系,没有经过完全测试,这个是大概意思。

CREATE PROCEDURE getnotes



   @forumID varchar(10),

   @a_intPageNo int ,

   @a_intPageSize int,

   @rootID varchar(10)

AS  

     declare @m_intRecordNumber int

     declare @m_intStartRecord  int

     declare @pagecount int

     declare @temp int

     declare @end  int

     declare @sql varchar(500)

     declare @bbsname varchar(25)

     declare @articles int

     declare @manager varchar(30)

     declare @selectrootID varchar(500)

     declare @temprootID varchar(10)



     select @m_intRecordNumber = @a_intPageSize * @a_intPageNo

     select @m_intStartRecord = @a_intPageSize * (@a_intPageNo - 1) + 1



     set nocount on       

     select @bbsname=subjectname,@manager=manager,@articles=articles from bbs_subjects where subjectID=@forumID

     if @rootID='0'

         begin

         -- select @sql='declare m_curTemp Scroll cursor for select ID,title,shrink,rootID,orderID,pubtime,hits,bytes,username,email from bbs_forum_'+@forumID+'  WHERE rootID in (select distinct rootID from bbs_forum_'+@forumID+' ) order by rootID desc,orderID asc'     

            select @sql='declare m_curTemp Scroll cursor for select rootID from bbs_forum_'+@forumID+' where rootID=parentID order by rootID desc'     

        end

     else

          select @sql='declare m_curTemp Scroll cursor for select ID,title,shrink,rootID,orderID,pubtime,hits,bytes,username,email from bbs_forum_'+@forumID+' where rootID='+@rootID+' order by orderID asc'     

     

     exec(@sql)

     open m_curTemp



       set @pagecount = case

            when  @@cursor_rows % @a_intPageSize=0 then @@cursor_rows / @a_intPageSize

            when  @@cursor_rows % @a_intPageSize<>0 then @@cursor_rows / @a_intPageSize+1

       end

       if  @@cursor_rows<@a_intPageSize and @@cursor_rows>0

          begin

             select @pagecount=1

          end

      



   if @rootID='0'

     begin

         set @temp = 1

         set @selectrootID='0'

        fetch absolute @m_intStartRecord from m_curTemp into @temprootID

        while  @@fetch_status = 0 and @temp < @a_intPageSize

             begin

                   set @temp = @temp + 1

                   select @selectrootID=@selectrootID+','+@temprootID

                   fetch next from m_curTemp into @temprootID                   

             end

         CLOSE m_curTemp

         DEALLOCATE m_curTemp

         set nocount off

         select 'pagecount' = @pagecount

         select 'bbsname'=@bbsname

         select 'manager'=@manager

         select 'articles'=@articles

         select @sql='declare curTemp Scroll cursor for select ID,title,shrink,rootID,orderID,Images,pubtime,hits,bytes,username,email  from  bbs_forum_'+@forumID+' where rootID in ('+@selectrootID+') order by rootID desc,orderID asc'

         exec(@sql)

         open curTemp

         fetch first from curTemp

         while  @@fetch_status = 0

             begin

                   fetch next from curTemp

             end

         CLOSE curTemp

         DEALLOCATE curTemp

       end

    else

        begin

            set @temp = 1     

            set nocount off

            fetch absolute @m_intStartRecord from m_curTemp

            while  @@fetch_status = 0 and @temp < @a_intPageSize

            begin

                   set @temp = @temp + 1

                   fetch next from m_curTemp

            end

            CLOSE m_curTemp

            DEALLOCATE m_curTemp

        end




相关阅读 Mac访问Windows共享文件夹Windows 7正版系统验证方法windows 8.1系统版本号查看方法Windows 8.1系统电话激活时无法输入微软返回代码解决方法Windows 8如何调整屏幕分辨率windows8.1磁盘占用100%解决方法Mac双系统如何删除Boot Camp安装的Windows分区Apple教你如何在Mac 上运行 Windows

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 VB.NET 2005编写定时关 Jquery get/post下乱码解决方法 前台gbk gb如何使用数据绑定控件显示数据ASP脚本循环语句ASP怎么提速

人气排行 轻松解决"Server Application Error"和iis"一起学习DataGridView调整列宽用ASP随机生成文件名的函数Jquery get/post下乱码解决方法 前台gbk gbODBC Drivers错误80004005的解决办法返回UPDATE SQL语句所影响的行数的方法用Javascript隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案