今天在使用李天平的代码生成器时发现了自带的分页存储过程的缺陷,当查询条件@strWhere中超过@strTmp varchar(100)的长度时会出现“关键字order附件有语法错误”,@strWhere被截断为100的长度,语法结构也就遭到了破坏,下面标注红色的部分为修改后的代码,其中UP_GetRecordByPageOrder存储过程也会出现相同的情况,修改方式也相同。

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

CREATE PROCEDURE 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(1000)        -- 临时变量
declare @strOrder varchar(400)        -- 排序类型

if @OrderType != 0
begin
    set @strTmp = '<(select min'
    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)

GO

转载于:https://www.cnblogs.com/fredlau/archive/2008/09/05/1284978.html

使用李天平代码生成器中分页存储过程的问题相关推荐

  1. 用于jqGrid获取SQL Server中数据的简单分页存储过程及sp_executesql的一点使用方法...

    之前我第一篇有关jqGrid JSON数据的获取是动态拼接的SQL语句(因为是Access数据库),然后我自己也用SQL Server中的数据作了测试,为了方便写了一个分页的存储过程,过程中也认识了下 ...

  2. 动软代码生成器分页存储过程

    1.定义动软代码生成器分页存储过程 ------------------------------------ --用途:分页存储过程(对有主键的表效率极高) --说明: --------------- ...

  3. oracle存储过程 多条件,Oracle多条件查询实际分页存储过程实操

    以下的文章主要是介绍Oracle多条件查询分页存储过程,以下就是Oracle多条件查询分页存储过程具体方案的描述,希望在你今后的学习中会有所帮助.将业务逻辑放到Oracle中使得后台代码很精简,Ora ...

  4. 技术以外的功夫 ----作者:李天平

    记得看过冯仑的"赚钱以外的功夫"有感而发,写写我们IT人技术以外的功夫.     有时候发现做技术做长了,很多的人的性格都会发生变化,变得内向,变得封闭.有的会发现市场团队的开会, ...

  5. 分页存储过程性能比较 二分法

    在项目中,我们经常遇到或用到分页,那么在大数据量(百万级以上)下,哪种分页算法效率最优呢?我们不妨用事实说话. 测试环境 硬件:CPU 酷睿双核T5750  内存:2G 软件:Windows serv ...

  6. 完整SQL分页存储过程(支持多表联接)

    Code /*********************************************************   * 作    用:数据分页(完整SQL分页存储过程(支持多表联接)) ...

  7. 在Entity Framework中使用存储过程(一):实现存储过程的自动映射

    之前给自己放了一个比较长的假期,在这期间基本上没怎么来园子逛.很多朋友的留言也没有一一回复,在这里先向大家道个歉.最近一段时间的工作任务是如何将ADO.NET Entity Framework 4.0 ...

  8. SQL Server分页存储过程实践(图解)

    下面来对SQL Server分页存储过程进行一下实做.图解成功的各个步骤. 一 找到大数据量的示例表 分页都是针对大记录数的表:反之有大记录数的表,可能就需要分页.例如银行用户表,就会上千万.下面先做 ...

  9. oracle千万级分页优化,oracle千万级数据分页存储过程优化

    随着数据量的增加,Oracle数据库分页存储过程(使用rownum分页)查询性能越来越差,查询时间也越来越长,于是优化势在必行,结合用户一般使用特点(一般看前几页的较多),于是以此为切入点优化原先的存 ...

最新文章

  1. 如何打造高质量的机器学习数据集?这份超详指南不可错过
  2. 阿里云ECS使用SSH连接CentOS 6.9经常断线的问题解决:OperationTimedOut
  3. iphone:UISplitView
  4. linux ls只显示文件名或者文件夹名
  5. 50个Android开发技巧(09 避免用EditText对日期进行验证)
  6. VC6编译卡死之解决办法
  7. python抽象基类的作用_Python:多态、鸭子模型和抽象基类
  8. python爬虫怎么挣钱_python爬虫12 | 爸爸,他使坏,用动态的 Json 数据,我要怎么搞?...
  9. OpenShift 4 之 GitOps(7)用ArgoCD部署Pacman应用集群
  10. Unsupported major.minor version 52.0解决
  11. 项目计划与控制-若干题目
  12. 部署VC2008的程序
  13. html表格左边锁定,表头锁定
  14. 编程之美 - 抓石头游戏(2)
  15. NetSpeed--网速检测
  16. 微信小程序canvas实现画圆圈头像
  17. 网站引用字体兼容IE
  18. Vue打包后通过springboot运行页面为空白页的解决方法
  19. 前端原生下载excel表格
  20. 【Java篇】第三话-你真的了解抽象类吗?

热门文章

  1. 2020 MCM Meritorious Winner
  2. find your place
  3. 几何着色器与细分(镶嵌)着色器
  4. onlevelwasloaded的调用时机
  5. 首次提出“智能经济形态”,与实体经济深度融合
  6. 业界 | 如何达到Kaggle竞赛top 2%?这里有一篇特征探索经验帖
  7. Android 5.0+高级动画开发 矢量图动画 轨迹动画 路径变换
  8. [转载]AxureRP 7.0部件详解(一)
  9. javaWeb中的Model1和Model2
  10. 转载:JAVA 操作 Ant API