asp用存储过程实现快速分页

ASP高效分页----最快的分页法,逐页翻页速度极快 立即下载

asp用存储过程实现快速分页
  在本地测试速度提升了不少。已经加在本站的mtv歌曲列表网页

一、先建立存储过程p_splitpage  

CREATE procedure p_splitpage  
@sql nvarchar(4000),
@currentpage int=2,
@pagesize int=10,
@recordcount int=0 output,
@pagecount int=0 output
 as
set nocount on
declare @p1 int
exec sp_cursoropen @p1 output,@sql,@scrollopt=1,@ccopt=1,@rowcount=@pagecount output
set @recordcount=@pagecount
set @pagecount=ceiling(1.0*@pagecount/@pagesize)  
set @currentpage=(@currentpage-1)*@pagesize+1 
select @recordcount recordcount ,@pagecount  pagecount,@currentpage  currentpage
exec sp_cursorfetch @p1,16,@currentpage,@pagesize
exec sp_cursorclose @p1
set nocount off
GO

二、asp中调用的函数

注:sql为要得到记录集的查询语句,cur_page为当前页码,P_size为每页记录数,R_count,P_count分别为存储过程返回的总记录数和总页数。

<%

Function GetData(Sql,Cur_page,P_size,R_Count,P_Count)

dim rs,Cmd
Set Cmd = Server.CreateObject("ADODB.Command")
Cmd.ActiveConnection=Conn
Cmd.CommandType=4 'adCmdStoredProc
Cmd.prepared=true '保存编译
Cmd.CommandText="p_splitpage" '存储过程 名称
'设置参数
Cmd.Parameters.Append Cmd.CreateParameter("@sql",200,1,500,Sql)
Cmd.Parameters.Append Cmd.CreateParameter("@currentpage",3,1,4,Cur_page)
Cmd.Parameters.Append Cmd.CreateParameter("@pagesize",3,1,4,P_size)
Cmd.Parameters.Append Cmd.CreateParameter("@recordcount",3,2)
Cmd.Parameters.Append Cmd.CreateParameter("@pagecount",3,2)

set  rs=server.CreateObject("adodb.recordset")   
rs.CursorType  =3   
rs.LockType  =3   
rs.CursorLocation  =3   
set  rs.Source  =cmd 
rs.open
set rs=rs.nextrecordset
R_Count=Cmd("@recordcount")
P_Count=Cmd("@pagecount")
set rs=rs.nextrecordset
set GetData=rs
end function%>


三、在asp中调用:

sql="select * from mtv order by id desc"

p_size=30 '这里设定每页显示的记录数  
cur_page=request("intpage")


set rs=GetData(sql,cur_page,p_size,R_Count,P_Count)  

if intpage >= P_Count then
 last=false
end if
rowcount=1
    while not rs.eof
  %>

显示内容

 <%
                   rs.movenext 
                        wend 
                  %>

<table width="99%" border="0" cellpadding="0" cellspacing="0" borderColorLight=#808080 borderColorDark=#ffffff>
          <tr>
            <%if rs.pagecount > 0 then%>
            <td width="32%" align="left"> 共有<font color="#ff0000"><%=R_Count%></font>个MTV
              当前页<font color="#ff0000"><%=cur_page%></font>/<%=P_Count%></td>
            <%else%>
            <td width="12%" align="left">当前页0/0</td>
            <%end if%>
            <td width="56%" align="right"><a href="singerlist.asp?id=<%=id%>&page=1">首页</a>|
              <%if pre then%>
              <a href="singerlist.asp?id=<%=id%>&page=<%=intpage -1%>">上页</a>|
              <%end if%>
              <%if last then%>
              <a href="singerlist.asp?id=<%=id%>&page=<%=intpage +1%>">下页</a> |
              <%end if%>
              <a href="singerlist.asp?id=<%=id%>&page=<%=P_count%>">尾页 </a>| 转到第
              <select name="sel_page" onchange="javascript:location=this.options[this.selectedIndex].value;">
                <%
       for i = 1 to P_Count
       if i = intpage then%>
                <option value="singerlist.asp?id=<%=id%>&page=<%=i%>" selected><%=i%></option>
                <%else%>
                <option value="singerlist.asp?id=<%=id%>&page=<%=i%>"><%=i%></option>
                <%
          end if
        next
        %>
              </select>
              页</td>
          </tr>
        </table>


一种高效的ASP+ACCESS分页方法 很多用过一些文章系统或是新闻系统的朋友知道,一般的文章系统或是新闻系统,在分类分页时,通常是通过读取数据库中满足条件的排序后数据,然后根据请求页号,通过定位操作,指向某条数据,并且开始读取这条数据后面的若干条数据作为一页。这种分页方法,原理简单,但是存在的问题是每次都需要把数据库中满足条件的排序后数据都读取出来,如果有两千条数据,这个还好,如果有两万条呢?显示,这会占用大量的内存,浪费很多服务器资源。当然,如果有条件的,可以用SQL数据库,这样就好办多了,用一点存储过程就全部解决了。不过可能很多朋友还是在用ACCESS数据库,这样就没有办法了。当然,还有一些程序是把分页生成HTML,就像不少下载站点一样,大家有没有想过,这样会出现什么问题?如果我在后台一次添加一条记录,那么我得把这个分类中所有的分页都重新生成一次HTML,这是肯定的,想想吧,这样效率是不是很差。 本文介绍的分页法就是为了解决在ACCESS数据库中,大量数据的分页而想出来的。它兼有HTML分页和传统ADO分页的优点。一是速度快,占用资源少,不管你是第一页还是第一百页,程序速度都是相同的。而且在数据添加时,不必把所有分页都重新生成。 立即下载

相关推荐

asp分页(普通sql查询分页+sql存储过程分页)

这是我整理的,两种不同方式的分页方法,之前我做过测试的,如果数据量很大的话,然后对数据速度要求比较快的话,还是用sql存储过程分页比较好

Asp中如何快速分页[原创]

 近日一直在研究如何才能写出高小的分页算法,大概整理了一下,思路如下:  首先数据库里需要有一个自动编号字段(ID)。然后第一次访问的时候,取出所有记录,定制好每页的记录数PageSize,计算出页数,然后根据页数建立一个一维数组PageId(PageCount),PageId(0)保存记录初试条件,然后对应每个元素保存每页对应的ID边界码(  1,ID边界码:如果数据库记录ID记录序列如下  1

foxty的专栏 1412

ASP+SQL Server带条件查询的分页存储过程及其ASP调用实例

ASP+SQL Server带条件查询的分页存储过程及其ASP调用实例

ASP高性能分页程序[原创]

SQL="Select ID From News Order By ID Desc"SQLA="Select Title,FilePath,FileName From News where ID In "SQLB=" Order By ID Desc"rs.Open SQL,conn,1,1ThePageCount=1CurrentPage=1ToPage=1If Not rs.Eof Then 

netkillerbase的专栏 1212

最牛的asp+mssql存储过程带条件分页代码

有了存储过程速度就快多了。下面是本人用50万的数据进行的测试可以用的存储过

ASP类+存储过程进行高效数据分页

本人自己开发的一个ASP类+SQL存储过程的分页代码,适合SQL数据库使用,对具有大量数据的分页显示特别试用。利用ASP类调用SQL的存储过程。文件里是一个例子,下载后附加数据库既可直接运行。

ASP的高效率的分页算法(zhuan)

写程序也这么长的时间了,对于程序分页算法也有所接触。飘易一般习惯使用的有两种分页算法,一是传统的ADO分页,二是SELECTTOP分页算法。对于小型数据表,比如一两万的数据量的表,我倾向使用ADO算法,对于大型的数据表,则必须采用后者的算法了。 先来说说传统的ADO分页算法。 这种算法,使用起来简单容易,很容易上手,对于小心数据库来说是首选,其执行效率很高,...

anku0825的博客 232

嵌入式:简单的service框架

在嵌入式中,我们获取一个资源、设置一个变量、更新数据的话最直接的方式就是直接调用一个函数。这样的写法也可以满足基本的功能,前提是这个系统是只要一个任务,只有一个while(1)如图1.1。图1.1当有两个或者两个以上的任务的时候,同时调用一个函数(设置一个状态值、操作同一个资源、操作指针等行为)的流程如图1.2。图1.2当两个任务同时操作一个资源的时候,就会有重入的问题,会导致想不到的异常问题(数据不对、指针异常等)。

stupid的博客 985

oracle存储过程分页c#,ASP.NET调用oracle存储过程实现快速分页

以下为引用的内容:create or replace package MaterialManage isTYPE T_CURSOR IS REF CURSOR;Procedure Per_QuickPage(TbName in varchar2, --表名FieldStr in varchar2, --字段集RowFilter in...

weixin_42251888的博客 148

银河麒麟V10离线安装VLC播放器:依赖处理与3.0.9.2版本实操指南

在国产化操作系统日益普及的背景下,软件安装方式成为政企内网用户关注的重点。离线安装作为一种不依赖公网源的部署手段,常用于解决内网环境下的软件获取问题。其核心在于理解Linux包管理机制,如dpkg与apt对依赖关系的处理逻辑。掌握这一原理,不仅能应对多媒体软件的部署,也能提升系统维护效率。VLC作为跨平台多媒体播放器,凭借强大的解码能力与协议支持,广泛应用于本地视频播放、RTSP拉流及监控大屏等场景。本文从离线安装的通用概念出发,结合银河麒麟V10桌面版的实际环境,详细梳理了VLC 3.0.9.2离线包的获

weixin_32247165的博客 367

金蝶云ERP远程办公指南:零公网IP实现安全内网穿透访问

本文详细介绍了如何利用内网穿透技术,在无需公网IP和复杂路由器设置的情况下,安全远程访问内网部署的金蝶云ERP系统。通过使用cpolar工具,逐步指导用户创建加密隧道、配置固定域名,并实现管理中心与数据中心的远程登录,有效解决了企业员工在外出或居家办公时的核心业务系统访问难题。

weixin_29229261的博客 269

ASP.NET调用oracle存储过程实现快速分页

《使用 ADO.NET 访问 Oracle 9i 存储过程》见下面的介绍(如果对这个不怎么懂的,还是先看看下面文章)http://www.microsoft.com/china/MSDN/library/data/dataAccess/DMSDNorsps.mspx包定义: create or replace package MaterialManage is  TYPE T_CURSOR

流落街头(蜗牛) 2956

从零到一:uniPush2.0全链路集成与多厂商通道配置实战

本文提供了uniPush2.0从零开始的全链路集成与多厂商通道配置实战指南。详细讲解了DCloud平台配置、uniCloud云函数开发、客户端CID获取与消息监听,并重点攻克了华为、小米、OPPO、vivo等主流厂商推送通道的配置难点与避坑技巧,帮助UniApp开发者实现“一次集成,全端覆盖”的高效消息推送方案。

onion的博客 431

[ASP.NET]调用oracle存储过程实现快速分页

《使用 ADO.NET 访问 Oracle 9i 存储过程》见下面的介绍(如果对这个不怎么懂的,还是先看看下面文章)http://www.microsoft.com/china/MSDN/library/data/dataAccess/DMSDNorsps.mspx包定义: create or replace package MaterialManage is  TYPE T_CURSOR

qghboy.Net专栏 761

CODESYS EtherCAT通讯断了怎么办?手把手教你用ST语言写状态监测程序(附完整代码)

本文详细解析了CODESYS平台下EtherCAT通讯中断的故障排查与恢复方法,通过ST语言编写状态监测程序实现链路监测、故障隔离和伺服恢复。文章包含完整代码示例,帮助工程师快速诊断EtherCAT网络问题,提升工业自动化设备的运行稳定性。

weixin_30919571的博客 209

DDSP(Differentiable Digital Signal Processing) 开篇

文章目录DDSP可以用来做什么?下一步工作 工作中接触到了DDSP声码器,但非科班出声的我对这块知识非常陌生,甚至带有一些畏惧的心理,但是为了工作为了进步,必须硬下头皮去啃,相信只要耐心地坚持,没什么能难到我。于是从今天开始,就用这个博客专栏来记录我的学习历程,希望也能帮助到你~ DDSP对应的论文是:DDSP: Differentiable Digital Signal Processing 先翻译一篇来自DDSP论文作者的对DDSP的介绍的文章。 今天,我们很高兴地介绍可微数字信号处理(DDSP)库。

YeeKo的博客 9245

[转]ASP.NET调用oracle存储过程实现快速分页

包定义:createorreplacepackageMaterialManageisTYPET_CURSORISREFCURSOR;ProcedurePer_QuickPage(TbNameinvarchar2,--表名FieldStrinvarchar2,--字段集RowFil...

weixin_30822451的博客 99

【ELF2学习板】基于OpenMP与RK3588多核架构优化FFTW的并行计算效率

本文详细介绍了如何在ELF2学习板上利用OpenMP与RK3588多核架构优化FFTW的并行计算效率。通过编译支持OpenMP的FFTW库、合理设置线程绑定与调度策略,以及内存访问优化等技巧,显著提升了FFT计算的性能。实测数据显示,多核并行优化可使4096点FFT计算速度提升一倍以上,特别适合信号处理、图像分析等高性能计算场景。

weixin_30352645的博客 604
下一篇: Asp中一些FSO方面的函数
webdevelop
博客等级 码龄24年 2粉丝 8原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值