• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP > asp中"无限流"分页程序代码

asp中"无限流"分页程序代码

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了asp中session的用法,asp中request的用法,asp中dim,asp中日期控件,asp中session等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
<%
'******************************************************************
'** 本程序名:"无限流"分页程序
'** 作者:Arbiter(AAsx)
'** 版本:Million Level
'**
'** QQ:22222xx
'** Email:Arbiter@21cn.com
'** http://www.imagecity.org/
'******************************************************************
'**
'** 【作者的话】
'**
'** 分页程序无疑是许多网络程序功能中一个比较麻烦的东西,事实上现在
'** 为止绝大部分人还是在使用传统的分页方法(Rs.PageSize=xx),而了解
'** 数据库操作的人都知道,这种传统方式有个弊端:第一次打开页面时,
'** 它会预读所有的记录集,这当在数据大的时候,这将是致命的,而且接
'** 下来的翻页速度也会非常慢,很占用资源。对于十万数量级以上的数据
'** 库这种传统分页方式已经显得非常无力,更别说百万级了(根本没法操
'** 作)。基于这种原因,促使我做了本程序。
'**
'** 【程序功能】
'**
'** 针对大型的数据库进行分页操作,理想的可操作的数据记录量在200万
'** 以内(Max Level版将无数量限制,且无论数据库多大,翻页速度都是
'** 不变),这是Million Level版分页程序在赛扬1G、内存512、win2k环
'** 境下的测试数据:
'**
'** SQLserver 2k + 10万条记录 + 每页显示20条:
'** 平均翻页速度:45ms
'** SQLserver 2k + 100万条记录 + 每页显示20条:
'** 平均翻页速度:350ms
'**
'**
'** 【分页原理】
'**
'** 本程序不再使用Rs.PageSize的方式分页,连接数据库的游标类型
'** 也不是使用conn,1,x,而是conn,0,1,这应是最快的游标类型了,不要
'** 以为这样会使程序变得复杂,相反,程序非常简单,如果你看不明白,
'** 应该是我的编程风格你不习惯,而非程序复杂。
'** "无限流"分页的中心是:每页只读出需要显示的记录,不再象传统
'** 分页程序预读全部的数据,这正在本程序最大的优点--占用资源少,同
'** 理速度也得到非常大的提升,特别在数据量越大的时候,它的速度优势
'** 越明显(100万记录才350ms左右)。
'** 当程序执行后,使用CurcorBegin和CurcorEnd记录显示的第一条记
'** 录和最后一条记录的ID值,作为下一次翻页的标记,然后利用Top xx取
'** 出需要的数据显示,同时又再对ID值进行记录。
'**
'** 【结 言】
'**
'** 本程序为共享版,提供给各程序爱好者研究使用,若要转载、散播、修
'** 改或作其他用途,请尊重作者的辛劳,注明出处。
'** 如果本程序中有错漏、非最优化等缺点,请到www.csdn.net的Web开发/
'** ASP栏目中发表讨论,为了中国软件事业的发展,请不要固步自封:)
'**
'********************************************************************  
Option Explicit
'Response.Flush
Dim BeginTime,EndTime
BeginTime=Timer
Dim conn,SQLstr,Rs,DefRecordNum,CursorBegin,CursorEnd,CurPageNum,hav
DefRecordNum=20
'--------------获取相关参数----------
If Request("CursorBegin")="" Then CursorBegin=0 Else CursorBegin=Request("CursorBegin")
If Request("CursorEnd")="" Then CursorEnd=0 Else CursorEnd=Request("CursorEnd")
If Request("CurPageNum")<>"" Then
CurPageNum=CLng(Request("CurPageNum"))
If CurPageNum<=0 Then CurPageNum=1
Else
CurPageNum=1
End If
hav=Request("hav")
If hav="" Then hav="next"
'----------------End-----------------
'------------显示翻页内容函数--------
Function TurnPageFS(DispRecordNum)
Dim n
While Not(Rs.Eof) And n<DispRecordNum
n=n+1
Response.Write "<tr>"&_
"<td bgcolor='efefef'>"&Rs(0)&"</td>"&_
"<td bgcolor='efefef'>"&Rs(1)&"</td>"&_
"<td bgcolor='efefef'>"&Rs(2)&"</td>"&_
"<td bgcolor='efefef'>"&Rs(3)&"</td>"&_
"<td bgcolor='efefef'>"&Rs(4)&"</td>"&_
"<td bgcolor='efefef'>"&Rs(5)&"</td>"&_
"</tr>"
If n=1 Then CursorBegin=Rs(0)
If n=DefRecordNum or Rs.Eof Then CursorEnd=Rs(0)
Rs.MoveNext
Wend
End Function
'-------------连接数据库-------------
Set conn=Server.CreateObject("Adodb.Connection")
'SQLstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("mldata.mdb")
SQLstr="Driver={SQL Server};server=arbiter;uid=arbiter;pwd=123456;database=mldata"
conn.Open SQLstr
'---------统计总记录数/总页数---------
'-PS:推荐使用count(ID),ID为自动编号且索引,否则速度有可能大打折扣
'-PS:此统计是本程序中最耗资源的一部分,如果取消这段程序,速度会快上10倍左右
Dim TotalRecords,TotalPages
SQLstr="Select count(ID) As RecordSum From ABC"
Set Rs=conn.Execute(SQLstr,0,1)
TotalRecords=Rs("RecordSum")
TotalPages=Abs(Int(TotalRecords/DefRecordNum*(-1)))
Rs.Close
Set Rs=Nothing
'--------根据hav选择相应的SQL字串-----
Select Case(hav)
Case "back"
CursorEnd=CursorBegin
SQLstr="Select Top "&DefRecordNum&"_
ID,Title,FileName,K,ImgSize,NameSon _
From ABC Where ID<"&CursorBegin&_
" And ID In (Select Top "&DefRecordNum_
&" ID From ABC Where ID<"&CursorBegin_
&" order by ID DESC) order by ID"
Case "next"
SQLstr="Select Top "&DefRecordNum_
&" ID,Title,FileName,K,ImgSize,NameSon From ABC Where ID>"&CursorEnd&_
" order by ID"
End Select
Set Rs=conn.Execute(SQLstr,0,1)
%>
<html>
<head>
<title>"无限流"分页程序  作者:Arbiter</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">td,br,div,p,body {font-size:12px}</style>
</head>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0">
<table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="#E2F5FE">
<tr align="center"> 
<td colspan="2"><%Response.Write CurPageNum&"/"&TotalPages&"页 总记录数:"&TotalRecords%></td>
<td><a href="mllist.asp">首页</a> <a href=javascript:turnpage('back');>上一页</a> 
<a href=javascript:turnpage('next');>下一页</a> </td>
</tr>
</table>
<table width="100%" border="1" cellspacing="0" cellpadding="3" bgcolor="#CCCCCC">
<tr> 
<td>ID</td>
<td>Title</td>
<td>FileName</td>
<td>大小</td>
<td>尺寸</td>
<td>类别</td>
</tr>
<%
TurnPageFS(DefRecordNum)
Rs.Close
Set Rs=Nothing
conn.Close
Set conn=Nothing
%> 
</table>
<table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="#E2F5FE">
<tr align="center"> 
<td colspan="2"><%Response.Write CurPageNum&"/"&TotalPages&"页 总记录数:"&TotalRecords%></td>
<td><a href="mllist.asp">首页</a> <a href=javascript:turnpage('back');>上一页</a> 
<a href=javascript:turnpage('next');>下一页</a> </td>
</tr>
</table>
<%
EndTime=Timer
Response.Write "<br>程序执行时间:"&(EndTime-BeginTime)*1000&"毫秒"
Response.Write " 第一条记录的ID值(CursorBegin)="&CursorBegin&" "
Response.Write "最后一条记录的ID值(CursorEnd)
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • ASP的Global.asa文件技巧用法
  • ASP中SESSION无法保存问题的解决办法
  • asp中设置session过期时间方法总结
  • ASP中Session技巧 默认过期时间为20分钟
  • ASP所有的Session变量获取实现代码
  • asp之让Session永不过期
  • asp中"无限流"分页程序代码
  • ASP编程入门进阶(八):内置对象Session
  • asp 常用函数用法

相关文章

  • 2017-05-11ASP中通过该日历算法实现的具体代码
  • 2017-05-11一段ASP的HTTP_REFERER判断代码
  • 2017-05-11asp中cint与clng的区别分析
  • 2017-05-11ASP充分利用Err.Description
  • 2017-05-11用ASP+XML打造留言本
  • 2017-05-11ASP UTF-8编码下字符串截取和获取长度函数
  • 2017-05-11ASP基础入门第五篇(ASP脚本循环语句)
  • 2017-05-11asp经常被忽视的一种死循环
  • 2017-05-11ASP 游标参数详解(ASP记录集)第1/2页
  • 2017-05-11随机调用n条数据的方法分析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Asp 使用 Microsoft.XMLHTTP 抓取网页内容并过滤需要的
    • 实现对Access数据库表重命名的一段代码
    • asp两组字符串数据比较合并相同数据
    • 隐藏修改文件时间和文件属性的ASP脚本
    • 各种存储过程使用指南
    • 非常不错的ASP+Access数据库的终极安全大法18则
    • ASP存储过程开发应用详解第1/2页
    • asp:生成静态页面函数
    • Win7的IIS7中ASP获得的系统日期格式为斜杠的解决办法
    • ASP中用select case代替其他语言中的switch case, default用case else

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有