-
您的位置:首页 → 技术开发 → 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隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案
查看所有0条评论>>