两个高效的ASP分页函数

两个高效的ASP分页函数(统计记录数,分页提取记录)

<%
'    /*智能返回分页SQL语句*/
'    /// <summary>
'    /// 功能:智能返回分页SQL语句
'    /// </summary>
'    /// <param name="primaryKey">主键(不能为空)</param>
'    /// <param name="queryFields">提取字段(不能为空)</param>
'    /// <param name="tableName">表(理论上允许多表)</param>
'    /// <param name="condition">条件(可以空)</param>
'    /// <param name="OrderBy">排序,格式:字段名+""+ASC(可以空)</param>
'    /// <param name="pageSize">分页数(不能为空)</param>
'    /// <param name="pageIndex">当前页,起始为:1(不能为空)</param>
'    /// <returns></returns>
Public Function GetPageListSql( primaryKey,  queryFields,  tableName,  condition,  orderBy,  pageSize,  pageIndex)

Dim strTmp,SqlSelect,SqlPrimaryKeySelect,strOrderBy,strWhere,strTop,pageindexsize
 strTmp=""
'//---strTmp用于返回的SQL语句
 SqlSelect = ""
 SqlPrimaryKeySelect = ""
 strOrderBy = ""
 strWhere = " where 1=1 "
 strTop = ""
 pageindexsize = 0

'        //0:分页数量
'        //1:提取字段
'        //2:表
'        //3:条件
'        //4:主键不存在的记录
'        //5:排序
        SqlSelect = " select top {0} {1} from {2} {3} {4} {5}"
 '       //0:主键
 '       //1:TOP数量,为分页数*(排序号-1)
 '       //2:表
 '       //3:条件
 '       //4:排序
        SqlPrimaryKeySelect = " and {0} not in (select {1} {0} from {2} {3} {4}) "

        if orderBy <> "" then
            strOrderBy = " order by "&orderBy
           End if
     if condition <> "" then
            strWhere =strWhere&" and "&condition
         pageindexsize = (pageIndex - 1) * pageSize
          End if
      if cint(pageindexsize) > 0 then
      
            strTop = " top " & pageindexsize

            SqlPrimaryKeySelect = Replace(Replace(Replace(Replace(Replace(SqlPrimaryKeySelect,"{0}", primaryKey),"{1}", strTop),"{2}", tableName),"{3}", strWhere),"{4}", strOrderBy)

            strTmp = Replace(Replace(Replace(Replace(Replace(Replace(SqlSelect,"{0}", pageSize),"{1}", queryFields),"{2}", tableName),"{3}", strWhere),"{4}", SqlPrimaryKeySelect),"{5}", strOrderBy)

      
        else
            strTmp = Replace(Replace(Replace(Replace(Replace(Replace(SqlSelect,"{0}", pageSize),"{1}", queryFields),"{2}", tableName),"{3}", strWhere),"{4}", ""),"{5}", strOrderBy)

          
        End if
        GetPageListSql= strTmp

End Function

'    /*分页查询数据记录总数获取*/
'    /// <summary>
'    ///功能: 分页查询数据记录总数获取
'    /// </summary>
'    /// <param name="ptbName">----要显示的表或多个表的连接</param>
'    /// <param name="pID">----主表的主键</param>
'    /// <param name="pstrCondition">----查询条件,不需where</param>       
'    /// <param name="pDist">----是否添加查询字段的 DISTINCT 默认0不添加/1添加</param>
'    /// <returns></returns>
Public Function GetPageListCounts( pID,  ptbName,  pstrCondition,  pDist)

'  //---存放取得查询结果总数的查询语句                   
'        //---对含有DISTINCT的查询进行SQL构造
'        //---对含有DISTINCT的总数查询进行SQL构造
Dim strTmp,SqlSelect,SqlCounts
  strTmp = ""
  SqlSelect = ""
  SqlCounts = ""

        if CInt(pDist) = 0 then
      
            SqlSelect = "Select "
            SqlCounts = "COUNT(*)"
      
        else
      
            SqlSelect = "Select DISTINCT "
            SqlCounts = "COUNT(DISTINCT " & pID& ")"
       End if
        if pstrCondition ="" then
       
            strTmp = SqlSelect & " "& SqlCounts & " FROM " & ptbName & ""
       
        else
       
            strTmp = SqlSelect & " " & SqlCounts & " FROM "& ptbName& " Where (1=1) and " & pstrCondition
        End If
       
        GetPageListCounts= strTmp

End Function

%>

时间: 2024-08-03 20:28:17

两个高效的ASP分页函数的相关文章

一个实用asp分页函数

分享一个asp分页函数,感觉挺好看的.视图如图:       可以根据自己的情况修改,代码: <% '谢亮修分页程序 'call pagecontrol(记录总数,页码总数,当前页) Sub PageControl(iCount,pagecount,page)  response.Write("<style type=""text/css"">/*谢亮分页CSS*/div.pager{padding:10px;}div.pager a,d

js实现ASP分页函数 HTML分页函数_javascript技巧

复制代码 代码如下: <!-- //ASP分页函数 function ShowListPage(page,Pcount,TopicNum,maxperpage,strLink,ListName){     var alertcolor = '#FF0000';     maxperpage=Math.floor(maxperpage);     TopicNum=Math.floor(TopicNum);     page=Math.floor(page);     var n,p;     i

一个实用的ASP分页函数,解决你重复写分页代码的烦恼

   有时候,大家是不是因为写一些重复的代码而感到烦恼呢?由于在做ASP程序时,很多时候都要用到分页,重复作分页程序错误多不说了,而且影响到作程序的积极性,故写一分页函数,方便大家调用.如下:       <%'=================   ProgrammName: 分页函数   ======================='  ================   Programmed  by  Bubuy   ====================='    ========

ASP分页函数

分页|函数 const MaxPerPage=18dim pageif not request("page")="" then Page=cint(request("page"))else Page=1end if dim ii=0rs.move (Page-1)*MaxPerPage 分页do while  ' 中间是循环段 i=i+1 if i>=MaxPerPage then exit do rs.movenextloop =====

asp分页函数[推荐]

<% sql="" Set Rs=Server.CreateObject("Adodb.RecordSet") Rs.open Sql,TXconn,1,1 If Rs.RecordCount Then         TopNum=10        '定义每页显示多少条         QName="Page"        '定义接收页码的变量名         Page=Request.QueryString(QName)     

asp 分页函数与数据库连接

<%@language="vbscript" codepage="936"%> <% '定义数据连接 option explicit on error resume next dim startime,endtime startime=timer() dim db,conn,rs db = "provider=microsoft.jet.oledb.4.0;data source=" & server.mappath(&

ASP VBScript 分页函数

vbscript|分页|函数 作用: 为了通用性考虑, 本函数主要功能为分页导航, 定义数据库连接和调用数据在调用页操作. 1.1 函数 fPageCount 内容1.2 包含文件 abbr.asp, 非必须2.1 使用函数例12.2 使用函数例22.3 使用函数例3 注: 例中的脚本为跳转框必须 效果: -------------------------------------------------------------首页 上十 上一 1 2 3 4 5 6 7 8 9 10  下一 下

SQL Server 2005: 利用新的ranking函数实现高效的数据分页操作

server|分页|函数|数据 最近MSDN Magazine上的一篇文章10 Tips for Writing High-Performance Web Applications提到了有效的数据分页技术对提高ASP .NET程序性能的重要性:并给出了一个实现数据分页的stored procedure的例子,抄录如下: CREATE PROCEDURE northwind_OrdersPaged ( @PageIndex int, @PageSize int ) AS BEGIN DECLARE

ASP 通用文章分页函数(非记录集分页)

分页|函数|记录集 说明: 本函数为文章分页, 非记录集分页本函数实现将文章分页显示, 并以指定长度显示每一分页本函数实现不需指定 URL, 自动更替 URL本函数实现返回多个结果, 为: 分页链接-文章统计信息-文章内容, 由字典实现如果分页大小大于文章总大小, 分页链接将为空. 显示如:第1页 第2页 第3页 第4页 第5页 50,000字/页 1/5页 共235,289字正文... 注: 显示内容的三个元素可自由变更位置. 附注: 如果您是在查找 记录集分页函数, 鄙人以前也写过一个, 名