简单的分页类



<%@ Language=VBScript %><% Option Explicit %><SCRIPT LANGUAGE=VBScript RUNAT=SERVER>  '确保引用 ADO Typelib 或使用 ADOVBS.Inc  Dim iPageNum, iRowsPerPage

  Main    Sub Main()   Dim rst   Dim sSQL, sConnString

   If Request.QueryString("iPageNum") = "" Then     iPageNum = 1   Else     iPageNum = Request.QueryString("iPageNum")     iPageNum = CInt(iPageNum)   End If

   iRowsPerPage = 10

   sConnString = "Provider=SQLOLEDB.1;password=Xyz123;user id=WebUser;" & _          "Initial Catalog=NorthWind;Data Source=MySQLServer;" & _          "network=dbmssocn;"

   '下列 SQL 从 SQL 视图中检索所有列。   '要优化性能:   '- 使用存储过程、视图或在 SELECT 中指定列   '- 使用限制返回的记录的条件(例如,WHERE 子句)   sSQL = "SELECT CategoryName, ProductName, QuantityPerUnit,"   sSQL = sSQL & "UnitsInStock, Discontinued"      sSQL = sSQL & " FROM [Products By Category]"

   Set rst = GetRecords(sConnString, sSQL)

   WriteTableHeader rst   WriteTableBody rst, iRowsPerPage, iPageNum   ShowNavBar rst

   'ShowFastNavBar 方法不使用 RecordCount   '或 PageCount,所以它重试的记录数仅等于   '记录集的 CacheSize 指定的数量。

   'ShowFastNavBar rst

   CleanUp rst  End Sub

  Function GetRecords(sConnString, sSQL)  Dim cnn  Dim rst

    set cnn = Server.CreateObject("ADODB.CONNECTION")    cnn.ConnectionString = sConnString    nn.Open

    Set rst = Server.CreateObject("ADODB.RECORDSET")

    Set rst.ActiveConnection = cnn

     '当记录集打开时,adUseClient 的 CursorLocation     ' 将检索所有的记录。     'adUseServer 允许沿用 CacheSize     rst.CursorLocation = adUseServer

     '在使用服务器端游标时,CacheSize       '限制了取回的行数。我们将只抓取正在显示的     '的记录的数目 - iRowsPerPage     rst.CacheSize = iRowsPerPage

     rst.Open sSQL,,adOpenStatic, adLockReadOnly牋?     Set GetRecords = rst    end Function

    Sub WriteTableHeader(rst)    Dim fld

     Response.Write "<TABLE WIDTH=80% BORDER=1>"     Response.Write "<TR>"

     '建立表的列标题      For Each fld in rst.Fields       Response.Write "<TD><B>" & fld.Name & "</B></TD>"    Next    Response.Write "</TR>"   End Sub

   Sub WriteTableBody(rst, iRowsPerPage, iPageNum)   Dim iLoop   Dim fld

   iLoop = 1

   rst.PageSize = iRowsPerPage   rst.AbsolutePage = iPageNum

   '写出记录的当前页   Do While (Not rst.EOF) and (iLoop <= iRowsPerPage)     Response.Write "<TR>"      For Each fld in rst.Fields       Response.Write "<TD>" & fld.value & "</TD>"        Next         iLoop = iLoop + 1         rst.MoveNext         Response.Write "</TR>"     Loop     Response.Write "</TABLE>"   End Sub

   Sub ShowNavBar(rst)   Dim iPageCount   Dim iLoop   Dim sScriptName

    '本版本提供了更丰富的用户导航,但是    '依赖于 RecordCount 和 PageCount,    '它抵消了为服务器端游标    '指定 CacheSize 的好处。

    Response.Write "<BR><BR>"    sScriptName = Request.ServerVariables("SCRIPT_NAME")

    If iPageNum > 1 Then      Response.Write " <a href=" & sScriptName & "?iPageNum="      Response.Write (iPageNum -1) & "><< Previous</a>"    End If

    iPageCount = rst.PageCount    Do Until iLoop > iPageCount    f iLoop = iPageNum Then       Response.Write " <B>" & CStr(iLoop) & "</B>"      Else       Response.Write " <a href=" & sScriptName & "?iPageNum=" & _       Cstr(iLoop) & ">" & iLoop & "</a>"       End If       iLoop = iLoop + 1    Loop

    If Not rst.EOF Then     Response.Write " <a href=" & sScriptName & "?iPageNum="     Response.Write (iPageNum +1) & "> Next >></a><BR>"    Else       Response.Write "<BR>"    End If

    Response.Write "Page " & iPageNum & " of " & iPageCount & "<BR>"    Response.Write rst.RecordCount & " Records" 牋?   End Sub

   Sub ShowFastNavBar(rst)   Dim iPageCount   Dim iLoop   Dim sScriptName

     '在指定 CacheSize 和使用服务器端游标时,     '该方法特别有效,因为它不使用 RecordCount      '和 PageCount。需要用户具有经验。

     Response.Write "<BR><BR>"     sScriptName = Request.ServerVariables("SCRIPT_NAME")

     If iPageNum > 1 Then      Response.Write " <a href=" & sScriptName & "?iPageNum="      Response.Write (iPageNum -1) & "><< Previous</a>"    End If

    If Not rst.EOF Then      Response.Write " <a href=" & sScriptName & "?iPageNum="      Response.Write (iPageNum +1) & "> Next >></a><BR>"    Else      Response.Write "<BR>"    End If

    Response.Write "Page " & iPageNum

   End Sub

   Sub CleanUp(rst)     If Not rst Is Nothing then       If rst.state = adStateOpen then rst.close       set rst = nothing     End If   End Sub

</SCRIPT>

转载于:https://www.cnblogs.com/spring4/archive/2005/04/24/2483883.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477002.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开源:Swagger Butler 1.1.0发布,利用ZuulRoute信息简化配置内容

Swagger Butler是一个基于Swagger与Zuul构建的API文档汇集工具。通过构建一个简单的Spring Boot应用&#xff0c;增加一些配置就能将现有整合了Swagger的Web应用的API文档都汇总到一起&#xff0c;方便查看与测试。 项目地址 Github&#xff1a;https://github.com/dyc87112/…

LeetCode 10. 正则表达式匹配(递归/DP)

文章目录1. 题目2. 解题2.1 递归2.2 DP1. 题目 给你一个字符串 s 和一个字符规律 p&#xff0c;请你来实现一个支持 ‘.’ 和 ‘*’ 的正则表达式匹配。 . 匹配任意单个字符* 匹配零个或多个前面的那一个元素 所谓匹配&#xff0c;是要涵盖 整个 字符串 s的&#xff0c;而不…

.net 页面框架的层次问题,嵌套问题

第一层&#xff1a;Form1&#xff1a;<form id"Form1" runat"server">第二层&#xff1a;才是我们拖放的控件。<asp:TextBox id"TextBox1" runat"server"></asp:TextBox>一般来说就只有这两层了。但是我们想要控件嵌…

3000块能买AAAI的Strong Accept?

编 | Aeneas 好困源 | 新智元最近&#xff0c;知乎上爆出一张AI投稿群的匿名聊天截图&#xff0c;网友讨论「加群互相bid」&#xff0c;还说3000块就可以买到一个AAAI的「strong accept」。正值AAAI 2023论文截止提交之际&#xff0c;知乎上突然出现了一张AI投稿群的匿名聊天截…

Spring Boot中使用MongoDB的连接池配置

因为今天开发遇到了性能问题&#xff0c;可能与MongoDB的连接有关&#xff0c;所以稍稍深入看了一下&#xff0c;正好搜到原来有人写过这篇相关的内容&#xff0c;所以转载过来。回头有时间可以写个扩展到SpringForAll里&#xff0c;主体思路还是一样的。感谢这位美女程序媛的文…

LeetCode 409. 最长回文串(计数)

1. 题目 给定一个包含大写字母和小写字母的字符串&#xff0c;找到通过这些字母构造成的最长的回文串。 在构造过程中&#xff0c;请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。 注意: 假设字符串的长度不会超过 1010。 示例 1: 输入: "abccccdd" 输出…

又一名视觉大牛从大厂离开!阿里达摩院 XR 实验室负责人谭平离职

文 | 王玥编 | 陈彩娴源 | AI科技评论AI科技评论获悉&#xff0c;阿里巴巴达摩院 XR 实验室负责人谭平已于近日离职。谭平曾受邀担任国际顶级学术会议CVPR、SIGGRAPH、IROS领域主席&#xff0c;是3D视觉领域的标杆人物。谭平于2019年9月入职阿里人工智能实验室担任计算机视觉首…

【小马哥】Spring Boot系列讲座

这里推荐一个不错的Spring Boot系列讲座&#xff0c;讲师简介如下&#xff1a; 小马哥&#xff0c;阿里巴巴技术专家&#xff0c;从事十余年Java EE 开发&#xff0c;国内微服务技术讲师。目前主要负责微服务技术推广、架构设计、基础设施、迁移等。重点关注云计算、微服务以及…

程序员面试金典 - 面试题 03.03. 堆盘子 (vector(stack))

1. 题目 堆盘子。设想有一堆盘子&#xff0c;堆太高可能会倒下来。因此&#xff0c;在现实生活中&#xff0c;盘子堆到一定高度时&#xff0c;我们就会另外堆一堆盘子。 请实现数据结构SetOfStacks&#xff0c;模拟这种行为。SetOfStacks 应该由多个栈组成&#xff0c;并且在…

事件冒泡控件示例(转载)

.NET Framework 开发员指南 事件冒泡ASP.NET 页框架提供一种称为“事件冒泡”的技术&#xff0c;允许子控件将事件沿其包容层次结构向上传播。事件冒泡允许在控件层次结构中更方便的位置引发事件&#xff0c;并且允许将事件处理程序附加到原始控件以及公开冒泡的事件的控件上。…

Oracle 大规模裁员进行时:营收暴跌 28%,数据库地位被侵蚀

源 | InfoQ裁员潮席卷国外大厂&#xff0c;数据库巨头 Oracle 也不例外。“我的经理给我打了 3 分钟的电话。毫无情感地告诉我&#xff1a;你的职位被取消了&#xff0c;人力资源部稍后会把细节发给你&#xff0c;再见。”“我在 CX 营销部门工作了 8 年。HR 昨天下午打电话给我…

Spring Boot中使用RabbitMQ

很久没有写Spring Boot的内容了&#xff0c;正好最近在写Spring Cloud Bus的内容&#xff0c;因为内容会有一些相关性&#xff0c;所以先补一篇关于AMQP的整合。 Message Broker与AMQP简介 Message Broker是一种消息验证、传输、路由的架构模式&#xff0c;其设计目标主要应用…

程序员面试金典 - 面试题 03.05. 栈排序(两栈)

1. 题目 栈排序。 编写程序&#xff0c;对栈进行排序使最小元素位于栈顶。 最多只能使用一个其他的临时栈存放数据&#xff0c;但不得将元素复制到别的数据结构&#xff08;如数组&#xff09;中。 该栈支持如下操作&#xff1a;push、pop、peek 和 isEmpty。当栈为空时&#…

大足石刻一日游

今天早上9点半从重庆出发&#xff0c;11点半到的目的地。玩了3个小时&#xff0c;下午5点又回来了。逛了一会儿&#xff0c;感觉被骗了&#xff0c;没多少东西嘛&#xff0c;好多石刻都被风化的差不多了&#xff0c;1个小时就出来了&#xff0c;80块的门票真“值”。下面是手机…

为什么说工作期间需要摸鱼?

文 | 梦晨(发自凹非寺)源 | 量子位一努力思考就会精神疲惫&#xff0c;学习工作一天之后只想无脑躺平。最新研究发现&#xff0c;这并不是你一个人的错&#xff0c;而是有着普遍的生理基础&#xff1a;思考时脑内会产生一种毒素&#xff0c;积累太多会破坏大脑功能&#xff0c;…

Spring boot中使用log4j记录日志

之前在Spring Boot日志管理 一文中主要介绍了Spring Boot中默认日志工具&#xff08;logback&#xff09;的基本配置内容。对于很多习惯使用log4j的开发者&#xff0c;Spring Boot依然可以很好的支持&#xff0c;只是需要做一些小小的配置功能。 引入log4j依赖 在创建Spring …

4.7 【共享源】流的生产者(二)

七,模式 流的模式决定了Screen如何使前台缓冲区可用。生产者通过调用screen_set_stream_property_iv()并设置SCREEN_PROPERTY_MODE属性来设置模式。有效模式如下: 7.1 SCREEN_STREAM_MODE_DEFAULT 如果生产者应用程序没有在流上明确设置 SCREEN_PROPERTY_MODE 属性,则 Sc…

程序员面试金典 - 面试题 03.06. 动物收容所(队列)

1. 题目 动物收容所。有家动物收容所只收容狗与猫&#xff0c;且严格遵守“先进先出”的原则。 在收养该收容所的动物时&#xff0c;收养人只能收养所有动物中“最老”&#xff08;由其进入收容所的时间长短而定&#xff09;的动物&#xff0c;或者可以挑选猫或狗&#xff08…

Enterprise Blocks

我在Visual Studio .NET Web Control for Business Intelligence 中介绍的一个BI工具。支持DNN和SPS&#xff0c;太有心了&#xff01;找到一篇中文介绍文章。 Enterprise Blocks是ASP.NET Web控件、web服务、Windows服务的完整集合&#xff0c;在开发分析应用系统中可以作…

2022年竞赛打榜,神经网络还是干不过树模型??

文 | QvQ随着深度神经网络的不断发展&#xff0c;DNN在图像、文本和语音等类型的数据上都有了广泛的应用&#xff0c;然而对于同样非常常见的一种数据——表格数据&#xff0c;DNN却似乎并没有取得像它在其他领域那么大的成功。从Kaggle平台上对数据挖掘竞赛Top团队使用的工具统…