1,

------------------------------------

--用途:支持任意排序的分页存储过程

--说明:

------------------------------------

CREATE PROCEDURE [dbo].[UP_GetRecordByPageOrder]

@tblName varchar(255), -- 表名

@fldName varchar(255), -- 显示字段名

@OrderfldName varchar(255), -- 排序字段名

@StatfldName varchar(255), -- 统计字段名

@PageSize int = 10, -- 页尺寸

@PageIndex int = 1, -- 页码

@IsReCount bit = 0, -- 返回记录总数, 非 0 值则返回

@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序

@strWhere varchar(1000) = '' -- 查询条件 (注意: 不要加 where)

AS

declare @strSQL varchar(6000) -- 主语句

declare @strTmp varchar(100) -- 临时变量(查询条件过长时可能会出错,可修改100为1000)

declare @strOrder varchar(400) -- 排序类型

if @OrderType != 0

begin

set @strTmp = '

set @strOrder = ' order by [' + @OrderfldName +'] desc'

end

else

begin

set @strTmp = '>(select max'

set @strOrder = ' order by [' + @OrderfldName +'] asc'

end

set @strSQL = 'select top ' + str(@PageSize) + ' ' + @fldName + ' from ['

+ @tblName + '] where [' + @OrderfldName + ']' + @strTmp + '(['

+ @OrderfldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['

+ @OrderfldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'

+ @strOrder

if @strWhere != ''

set @strSQL = 'select top ' + str(@PageSize) + ' ' + @fldName + ' from ['

+ @tblName + '] where [' + @OrderfldName + ']' + @strTmp + '(['

+ @OrderfldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['

+ @OrderfldName + '] from [' + @tblName + '] where ' + @strWhere + ' '

+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder

if @PageIndex = 1

begin

set @strTmp = ''

if @strWhere != ''

set @strTmp = ' where ' + @strWhere

set @strSQL = 'select top ' + str(@PageSize) + ' ' + @fldName + ' from ['

+ @tblName + ']' + @strTmp + ' ' + @strOrder

end

if @IsReCount != 0

set @strSQL = @strSQL+' select count(1) as Total from [' + @tblName + ']'

if @strWhere!=''

set @strSQL = @strSQL+' where ' + @strWhere

exec (@strSQL)

2,

------------------------------------

--用途:分页存储过程(对有主键的表效率极高)

--说明:

------------------------------------

CREATE PROCEDURE [dbo].[UP_GetRecordByPage]

@tblName varchar(255), -- 表名

@fldName varchar(255), -- 主键字段名

@PageSize int = 10, -- 页尺寸

@PageIndex int = 1, -- 页码

@IsReCount bit = 0, -- 返回记录总数, 非 0 值则返回

@OrderType bit = 0, -- 设置排序类型, 非 0 值则降序

@strWhere varchar(1000) = '' -- 查询条件 (注意: 不要加 where)

AS

declare @strSQL varchar(6000) -- 主语句

declare @strTmp varchar(100) -- 临时变量(查询条件过长时可能会出错,可修改100为1000)

declare @strOrder varchar(400) -- 排序类型

if @OrderType != 0

begin

set @strTmp = '

set @strOrder = ' order by [' + @fldName +'] desc'

end

else

begin

set @strTmp = '>(select max'

set @strOrder = ' order by [' + @fldName +'] asc'

end

set @strSQL = 'select top ' + str(@PageSize) + ' * from ['

+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['

+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['

+ @fldName + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)'

+ @strOrder

if @strWhere != ''

set @strSQL = 'select top ' + str(@PageSize) + ' * from ['

+ @tblName + '] where [' + @fldName + ']' + @strTmp + '(['

+ @fldName + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' ['

+ @fldName + '] from [' + @tblName + '] where ' + @strWhere + ' '

+ @strOrder + ') as tblTmp) and ' + @strWhere + ' ' + @strOrder

if @PageIndex = 1

begin

set @strTmp =''

if @strWhere != ''

set @strTmp = ' where ' + @strWhere

set @strSQL = 'select top ' + str(@PageSize) + ' * from ['

+ @tblName + ']' + @strTmp + ' ' + @strOrder

end

if @IsReCount != 0

set @strSQL = 'select count(*) as Total from [' + @tblName + ']'+' where ' + @strWhere

exec (@strSQL)

动软 mysql 分页_动软.NET 分页存储过程UP_GetRecordByPage相关推荐

  1. 帆软连接mysql失败_帆软FineReport连接SQL Server数据库不成功:通过端口1433连接到主机localhost的 TCP/IP 连接失败...

    安装FineReport连接SQL Server数据库时,通过端口1433连接到本机一直失败,在FineReport官方网站帮助文档一直没找到解决办法.后在网上搜索了许久,终于找到问题所在" ...

  2. 帆软报表列表_帆软入门与报表设计

    填报报表 1. 创建模板(报表设计) 就以Oracle最简单的emp和dept为例把. 模板设计如下 2. 添加控件 右击单元格,选择控件设置 选择对应的属性 3. 设置填报属性 菜单栏选择模板=&g ...

  3. 帆软参数设置_帆软报表(finereport)参数组合/下拉参数联动

    首先实现下拉参数联动 1.参数的定义→添加控件绑定数据→参数过滤和参数面板样式 下拉复选框控件注意事项: select * from table where 1=1 ${if(len(控件名称)=0, ...

  4. 帆软报表列表_帆软报表(finereport)读取数据库表数据生成报表

    帆软报表(finereport)读取数据库表数据生成报表 发布时间:2019-01-14 16:48, 浏览次数:856 , 标签: finereport 1.首先是安装帆软报表软件,微软的傻瓜式安装 ...

  5. 软文写作_软文推广写作_推广软文写作_公司软文写作|Giiso智搜

    智搜(Giiso)信息成立于2013年是中国领先的"人工智能+资讯"领域的国家级高新技术企业,其自主研发的写作机器人,编辑机器人是可以从各个行业领域快速编辑写稿的人工智能机器人. ...

  6. 新闻软文写作_软文写作网_产品软文写作_活动软文写作|Giiso智搜

    智搜(Giiso)信息成立于2013年是中国领先的"人工智能+资讯"领域的国家级高新技术企业,其自主研发的写作机器人,编辑机器人是可以从各个行业领域快速编辑写稿的人工智能机器人. ...

  7. 帆软单点登录_帆软单点登陆

    参数名和URL修改一下就可以html> function doSubmit() {            var username = document.getElementById(" ...

  8. sqlserver 分页_四类数据库分页实现方案总结之PG分页实现

    概述 前面介绍了Oracle.mysql.sqlserver的分页实现方案了,所以今天主要介绍一下关于PG的分页实现.传统的精准分页(能获取到总页数并且任意跳转页码)在需要符合条件的记录总数目,不过p ...

  9. selectprovider 分页_修改EFOracleProvider——解决分页排序问题

    其实前面说的这些,支持9i啊,支持数据类型啊,支持自增长啊,或者是上网搜索就能解决,或者并不需要很高的技术含量. 但是支持分页排序的问题,可是花了我不少时间(净时间2天以上). 我们知道,在oracl ...

最新文章

  1. Parcelable与Serializable的比较
  2. Sisyphus.js的使用
  3. linux mysql insert_linux mysql怎么添加数据
  4. SYSENTER——快速系统调用
  5. html语言技术基础,第2章Web编程基础HTML语言技术方案.ppt
  6. 这些最常用的Linux命令,每一条都应该学会!
  7. java向数组中插入元素
  8. sockaddr类型重定义
  9. mssql与oracle不同点,MySql,Mssql,Oracle的优缺点和异同(欢迎补充) *
  10. 啥?分布式啥?啥事务?
  11. eclipse无法打开.ftl文件或打开.ftl没提示
  12. 【Linux】预编译,编译,汇编,链接的四过程
  13. Ice简介+Qt代码示例
  14. matlab结构地震,结构地震反应解析递推格式的Matlab实现
  15. Vim文件和日历操作
  16. 山城虽寒、但物联却热,探访中移物联小记一笔……
  17. 利用stm32做一个升级版的电子多功能密码锁
  18. 物联网组网技术比较 NB-IoT、LoRa、ZigBee、WiFi、蓝牙等
  19. 制作坦克大战,坦克移动代码
  20. 豆瓣图书排行250抓取练习

热门文章

  1. Udacity机器人软件工程师课程笔记(七)-ROS介绍和Turtlesim包的使用
  2. 在C语言中解析json配置文件
  3. C++ 多线程:future 异步访问类(线程之间安全便捷的数据共享)
  4. M_Map画南海水深地形图
  5. 返回一个二维整数数组中的最大的子数组和
  6. linux Mysql 安装
  7. RTMP协议中的Chunk Stream ID (CID)的作用
  8. js MD5加密处理
  9. C程序设计-----第1次作业
  10. Png透明背景的电话图标。