网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.NT4的ODBC与SQL7相连,不支持中文.
.ASP与Oracle连接时的TNS错误 .
.直接显示"Monday"等星.
.使用VBScript操作Html复选框(Ch.
.Jmail中避过smtp验证的一法.
.ASP提速技巧.
.探讨一下rs(0)和rs("fieldn.
.用PreRender解决DataGrid分页最后.
.批量对加密的asp代码解密的asp程.
.在windows 2003 server中编写asp.
.NT 下虚拟域名的实现.
.查看服务器Application/Session变.
.一个比较实用的asp函数集合类 .
.关于释放session的两篇文章(二).
.Varchar与char的区别.
.ASP中文本文件与数据库文件的数据.
.结束ADOVB.INC的办法.
.用ASP编写下载网页中所有资源的程.
.bbs的树状算法的补充程序.
.ASP 中 Split 函数的实例.

关于分页办法

发表日期:2001-4-18


时间关系,没有经过完全测试,这个是大概意思。
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

上一篇:一种理论上最快的Web数据库分页方法 人气:12313
下一篇:安全脚本程序的编写 V1.0 人气:11127
浏览全部的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐