热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通用分页存储过程返回总记录数

****************************************************************

 

***************************************************************
** 千万数量级分页存储过程,配合EXTJS中的GridPanel分页 **
***************************************************************
 
参数说明:
1.@tbName :表名称,视图,不带dbo.
2.@pkFiled :主关键字
3.@sortExp :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc (Desc Asc前必须加空格)
4.@start :每页起始行号,第一页是从0开始计算(ExtJs)
5.@limit :每页显示记录数
6.@fields: 字段名
7.@filter :过滤语句,不带Where
8.@group :Group语句,不带Group By
 
返回说明:
返回记录集,table[0]分页后的记录,table[1]当前数据源总记录数
 
测试语句:
Exec [spExtJsPager] @tbName = 'Roles',
      @pkFiled = 'RoleID',
      @start = 3,
      @limit = 3
 
***************************************************************/
ALTER PROCEDURE [dbo].[spExtJsPager]
(
@tbName varchar(1000),
@pkFiled varchar(100),
@sortExp varchar(200) = NULL,
@start int = 0,
@limit int = 20,
@fields varchar(1000) = '*',
@filter varchar(1000) = NULL,
@group varchar(1000) = NULL
)
AS
BEGIN
SET NOCOUNT ON
 
/*默认排序*/
SET @sortExp = RTRIM(LTRIM(@sortExp))
IF @sortExp IS NULL OR @sortExp = ''
   SET @sortExp = @pkFiled
 
DECLARE @sortTable varchar(100)
DECLARE @sortName varchar(100)
DECLARE @SQL varchar(4000)
 
/*设定排序语句.*/
DECLARE @strStartRow varchar(50),@strEndRow varchar(50)
DECLARE @strFilter varchar(1000)
DECLARE @strGroup varchar(1000)
 
/*默认当前页*/
IF @start < 0
   SET @start = 0
 
/*设置分页参数.*/
SET @strStartRow = CAST((@start + 1) AS varchar(50))
SET @strEndRow = CAST((@start + @limit) AS varchar(50))
 
/*筛选以及分组语句.*/
IF @filter IS NOT NULL AND @filter != ''
   BEGIN
    SET @strFilter = ' Where ' + @filter + ' '
   END
ELSE
   BEGIN
    SET @strFilter = ''
   END
 
IF @group IS NOT NULL AND @group != ''
   BEGIN
    SET @strGroup = ' GROUP BY ' + @group + ' '
   END
ELSE
   BEGIN
    SET @strGroup = ''
   END
 
/*执行查询语句*/
SET @SQL ='select * from (
     Select
      ROW_NUMBER() OVER(Order By '+@sortExp+') as SysRowNum,
      ' + @fields + '
     FROM ' + @tbName + @strFilter + @strGroup + '
    ) v
    where SysRowNum between '+@strStartRow+' and '+@strEndRow
 
SET @SQL = @SQL + 'select count('+@pkFiled+') from '+@tbName + @strFilter + @strGroup
EXEC (@SQL)
END
 
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
 

推荐阅读
  • ssm框架整合及工程分层1.先创建一个新的project1.1配置pom.xml ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 本文详细介绍了如何通过多种编程语言(如PHP、JSP)实现网站与MySQL数据库的连接,包括创建数据库、表的基本操作,以及数据的读取和写入方法。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 本文介绍如何在应用程序中使用文本输入框创建密码输入框,并通过设置掩码来隐藏用户输入的内容。我们将详细解释代码实现,并提供专业的补充说明。 ... [详细]
  • andr ... [详细]
  • 本文详细介绍了如何在ECharts中使用线性渐变色,通过echarts.graphic.LinearGradient方法实现。文章不仅提供了完整的代码示例,还解释了各个参数的具体含义及其应用场景。 ... [详细]
  • 利用决策树预测NBA比赛胜负的Python数据挖掘实践
    本文通过使用2013-14赛季NBA赛程与结果数据集以及2013年NBA排名数据,结合《Python数据挖掘入门与实践》一书中的方法,展示如何应用决策树算法进行比赛胜负预测。我们将详细讲解数据预处理、特征工程及模型评估等关键步骤。 ... [详细]
  • 本文详细介绍了如何在Kendo UI for jQuery的数据管理组件中,将行标题字段呈现为锚点(即可点击链接),帮助开发人员更高效地实现这一功能。通过具体的代码示例和解释,即使是新手也能轻松掌握。 ... [详细]
  • 深入分析十大PHP开发框架
    随着PHP技术的发展,各类开发框架层出不穷,成为了开发者们热议的话题。本文将详细介绍并对比十款主流的PHP开发框架,旨在帮助开发者根据自身需求选择最合适的工具。 ... [详细]
  • 本文介绍如何使用 NSTimer 实现倒计时功能,详细讲解了初始化方法、参数配置以及具体实现步骤。通过示例代码展示如何创建和管理定时器,确保在指定时间间隔内执行特定任务。 ... [详细]
  • 以下实例展示了locals( ... [详细]
author-avatar
millottgerould
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有