您的位置:首页技术开发ASP技巧 → 一个分页存储过程

一个分页存储过程

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

/*****听以前的同事说asp页面上的分页太慢了(如果数据多了),

就想了这么个笨办法。有些地方还要考虑----比如select top 22 * from cat_list

where T_id not in (select T_id from #change)是否有效率问题;数据不能重复等等

不过灵活性挺好。希望各位高手再给帮忙改正;多谢chair3的帮助---这个存储过程还可以在加入几个变量,随便大家改吧:)*****/





CREATE  proc page

@pagenum int

as

SET NOCOUNT ON             /*-----这一句很重要哦:)),不然它只会认 insert #change......这个数据集:))*/

declare @sql nvarchar(500)  --声明动态sql执行语句

declare @pagecount int      --当前页数



--取得当前数据库的记录总数

declare @row_num int  

begin      

select @row_num=count(*) from cat_list



--创建临时表,作为数据过滤

create table #change (T_id int)



--判断当前页数

if @row_num>6  --大于页面显示记录数,则分页

begin

set  @row_num=@pagenum*6

  

  if @row_num=6

select top 6 * from cat_list

else

begin

set  @row_num=(@pagenum-1)*6

set @pagecount=@row_num

set @sql=N'insert #change (T_id) select top '+cast(@pagecount as char(100))+' T_id from cat_list where T_id not in (select T_id from #change)'

exec sp_executesql @sql

select top 6 * from cat_list where T_id not in (select T_id from #change)

  end

end

else    --只现实全部的数据

select * from cat_list

end

GO







客户端这样调用:





<%    dim T_com

                                        dim T_rs'declare datamanage recordset

                                        



dim parameters

set T_com=server.createobject("adodb.command")

T_com.ActiveConnection=conn

T_com.CommandText="page"

T_com.CommandType=adCmdStoredProc

'T_com.Prepared=true

set parameters=T_com.CreateParameter("@pagenum",adInteger,adParamInput)

T_com.Parameters.Append parameters

dim page

page=request.QueryString("page")

    if page="" then

        page=1

    end if

T_com("@pagenum")=page

set T_rs=T_com.Execute



do while not T_rs.eof

response.Write T_rs("c_name")

T_rs.movenext

loop

%>

ddddd




相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

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

最新文章 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隐藏超级链接的真实地址两个不同数据库表的分页显示解决方案