`
coconut_zhang
  • 浏览: 531511 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

千万数量级分页存储过程

阅读更多
参数说明:
1.Tables :表名称,视图
2.PrimaryKey :主关键字
3.Sort :排序语句,不带Order By 比如:NewsID Desc,OrderRows Asc
4.CurrentPage :当前页码
5.PageSize :分页尺寸
6.Filter :过滤语句,不带Where
7.Group :Group语句,不带Group By
效果演示:http://www.cn5135.com/_App/Enterprise/QueryResult.aspx
***************************************************************/
(
@Tables varchar(1000),
@PrimaryKey varchar(100),
@Sort varchar(200) = NULL,
@CurrentPage int = 1,
@PageSize int = 10,
@Fields varchar(1000) = '*',
@Filter varchar(1000) = NULL,
@Group varchar(1000) = NULL
)
AS
/*默认排序*/
IF @Sort IS NULL or @Sort = ''
SET @Sort = @PrimaryKey
DECLARE @SortTable varchar(100)
DECLARE @SortName varchar(100)
DECLARE @strSortColumn varchar(200)
DECLARE @operator char(2)
DECLARE @type varchar(100)
DECLARE @prec int
/*设定排序语句.*/
IF CHARINDEX('DESC',@Sort)>0
BEGIN
SET @strSortColumn = REPLACE(@Sort, 'DESC', '')
SET @operator = '<='
END
ELSE
BEGIN
IF CHARINDEX('ASC', @Sort) = 0
SET @strSortColumn = REPLACE(@Sort, 'ASC', '')
SET @operator = '>='
END
IF CHARINDEX('.', @strSortColumn) > 0
BEGIN
SET @SortTable = SUBSTRING(@strSortColumn, 0, CHARINDEX('.',@strSortColumn))
SET @SortName = SUBSTRING(@strSortColumn, CHARINDEX('.',@strSortColumn) + 1, LEN(@strSortColumn))
END
ELSE
BEGIN
SET @SortTable = @Tables
SET @SortName = @strSortColumn
END
Select @type=t.name, @prec=c.prec
FROM sysobjects o
JOIN syscolumns c on o.id=c.id
JOIN systypes t on c.xusertype=t.xusertype
Where o.name = @SortTable AND c.name = @SortName
IF CHARINDEX('char', @type) > 0
SET @type = @type + '(' + CAST(@prec AS varchar) + ')'
DECLARE @strPageSize varchar(50)
DECLARE @strStartRow varchar(50)
DECLARE @strFilter varchar(1000)
DECLARE @strSimpleFilter varchar(1000)
DECLARE @strGroup varchar(1000)
/*默认当前页*/
IF @CurrentPage < 1
SET @CurrentPage = 1
/*设置分页参数.*/
SET @strPageSize = CAST(@PageSize AS varchar(50))
SET @strStartRow = CAST(((@CurrentPage - 1)*@PageSize + 1) AS varchar(50))
/*筛选以及分组语句.*/

IF @Filter IS NOT NULL AND @Filter != ''
BEGIN
SET @strFilter = ' Where ' + @Filter + ' '
SET @strSimpleFilter = ' AND ' + @Filter + ' '
END
ELSE
BEGIN
SET @strSimpleFilter = ''
SET @strFilter = ''
END
IF @Group IS NOT NULL AND @Group != ''
SET @strGroup = ' GROUP BY ' + @Group + ' '
ELSE
SET @strGroup = ''
/*执行查询语句*/
EXEC(
'
DECLARE @SortColumn ' + @type + '
SET ROWCOUNT ' + @strStartRow + '
Select @SortColumn=' + @strSortColumn + ' FROM ' + @Tables + @strFilter + ' ' + @strGroup + ' orDER BY ' + @Sort + '
SET ROWCOUNT ' + @strPageSize + '
Select ' + @Fields + ' FROM ' + @Tables + ' Where ' + @strSortColumn + @operator + ' @SortColumn ' + @strSimpleFilter + ' ' + @strGroup + ' orDER BY ' + @Sort + '
'
)
GO
分享到:
评论

相关推荐

    千万数量级分页存储过程,可支持多表查询,任意排序

    千万数量级分页存储过程,可支持多表查询,任意排序

    千万数量级分页存储过程_可支持多表查询_任意排序

    这是一个关于千万数量级分页存储过程_可支持多表查询_任意排序的存储过程处理源码

    sql server中千万数量级分页存储过程代码

    /* *************************************************************** ** 中国无忧商务网千万数量级分页存储过程 ** *************************************************************** 参数说明: 1.Tables...

    sqlserver 千万数量级分页存储过程代码

    千万数量级分页存储过程,对于大数据量数据调用的朋友可以参考下。

    SqlServer千万级分页取数据.sql

    ** 千万数量级分页存储过程 ** *************************************************************** 参数说明: 1.Tables :表名称,视图 2.PrimaryKey :主关键字 3.Sort :排序语句,不带Order By 比如:NewsID Desc,...

    LFU算法仿真请求分页系统

    1, 实现请求分页存储管理方式的页面置换算法:近期最少使用算法(LFU)。 2, 内存物理块数固定为15个,对多个作业采用可变分配全局置换的策略分配物理块 3, 作业数量与作业大小(10-20页)可在界面进行设置 4, 所有...

    clock页面置换算法

    1) 实现请求分页存储管理方式的页面置换算法:CLOCK算法 2) 内存物理块数固定为15个,对多个作业采用可变分配全局置换的策略分配物理块 3) 作业数量与作业大小(10-20页)可在界面进行设置 4) 所有作业按RR算法...

    在ASP.NET 2.0中操作数据之二十六:排序自定义分页数据

     和默认翻页方式相比,自定义分页能提高几个数量级的效率。当我们的需要对大量数据分页的时候就需要考虑自定义分页,然而实现自定义分页相比默认分页需要做更多工作。对于排序自定义分页数据也是这样,在本教程中...

    EasyASP 2.1 UTF-8.rar

    EasyASP是一个方便快速开发ASP的类,其中包含了数据库控制类Easp.db,具有同时对一个或多个数据库进行各类操作、调用MSSQL存储过程及记录集分页等功能。EasyASP同时提供了大量实用的ASP通用过程及方法,可以简化大...

    EasyAsp v2.1 beta EasyAsp.rar

    软件介绍 EasyASP是一个方便快速开发ASP的类,其中包含了功能完善的数据库控制类Easp.db,具有对数据库进行各类操作、调用MSSQL存储过程及记录集分页等功能。EasyASP同时提供了大量实用的ASP通用过程及方法,可以...

    51单片机语音回放系统课程设计报告.doc

    也可以采用 多片32k*8位的SRAM,但是需要分页存储技术来扩展容量。 7. D/A 语音的回放需要将存储的数字化信号进行D/A转换,恢复为模拟信号才能进行播放。 我们可以选用DAC0832来完成数字信号到模拟信号的转换,DAC...

    动网论坛Dvbbs v8.3 目前是最新版

    6.帖子浏览及主题浏览分页加强功能,更新了存储过程让浏览显示速度更快(支持千万级数据库快速分页) 7.金币帖转换成普通帖功能(错发金币帖的用户选择设置) 8.获赠金币帖隐藏输入金币数量(BUG修复) 9.去掉首页导航菜单...

    动网论坛Dvbbs v8.3.rar

    6.帖子浏览及主题浏览分页加强功能,更新了存储过程让浏览显示速度更快(支持千万级数据库快速分页) 7.金币帖转换成普通帖功能(错发金币帖的用户选择设置) 8.获赠金币帖隐藏输入金币数量(BUG修复) 9.去掉首页导航...

    ASP.NET 2.0+SQL Server 2005全程指南-源代码

    7.4.3 使用存储过程更新数据 7.4.4 使用存储过程删除数据 7.4.5 存储过程与输出参数 7.5 本章小结 第8章 ADO.NET编程基础 8.1 AD0.NET的基本对象及其操作 8.1.1 Connection对象(连接数据库) 8.1.2 Command...

    JavaWeb网上图书商城完整项目资料

    购物车没有使用sesson或cookie,而是存储到数据库中。 技术难点: &gt; 添加条目时,如果两次添加针对同一本书的条目,不是添加,而是合并; &gt; 修改数量时使用ajax时请求服务器端,服务器端返回json。 &gt; 大量js...

Global site tag (gtag.js) - Google Analytics