动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   Asp → 阅读文章

 关于分页办法

作者:东方蜘蛛 来源:chinaasp.com 
阅读 9047 人次 , 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
  

 本文Tags分页  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:打开页面就是全屏的方法
· 下一篇:一种理论上最快的Web数据库分页方法
· asp + oracle 分页方法(不用存储过程)
· ASP用JMail、CDO发送邮件
· Zaks Pop3 简要介绍 
· 随机产生用户密码(good)
· WAP中的ASP技术(一)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077