当前位置:  数据库>mysql iis7站长之家

通用分页存储过程,源码共享,大家共同完善

    来源: 互联网  发布时间:2014-09-05

    本文导语:  好久没有上来写点东西了,今天正好有空,共享一些个人心得,就是关于分页的存储过程,这个问题应该是老生重谈了,网上的通用存储过程的类型已经够多了,但是,好象看到的基本上不能够满足一些复杂的SQL语句的分页(...

好久没有上来写点东西了,今天正好有空,共享一些个人心得,就是关于分页的存储过程,这个问题应该是老生重谈了,网上的通用存储过程的类型已经够多了,但是,好象看到的基本上不能够满足一些复杂的SQL语句的分页(也可能是我不够见多识广啊,呵呵),比如下面这句: 
select '' as CheckBox, A.TargetID, A.TargetPeriod, Convert(varchar(10), B.BeginDate, 120) as BeginDate, 
    Convert(varchar(10), B.EndDate, 120) as EndDate, C.SalesCode, C.SalesName, D.CatalogCode, D.CatalogName, 
    E.OrgID, E.OrgName, F.OrgID as BranchOrgID, F.OrgCode as BranchOrgCode, F.OrgName as BranchOrgName, 
    A.Amount, '' as DetailButton
from ChlSalesTarget as A
    left outer join ChlSalesTargetPeriod as B on A.TargetPeriod=B.TargetPeriod
    left outer join ChlSales as C on A.Sales=C.SalesCode
    left outer join ChlItemCatalog as D on A.ItemCatalog=D.CatalogCode
    left outer join ChlOrg as E on A.OrgID=E.OrgID
    left outer join ChlOrg as F on C.BranchOrgID=F.OrgID
where A.TargetPeriod >='200607' and A.TargetPeriod  0
    set @Where = ' where ' + @Where
else
    set @Where = ' where 1=1'

set @SQL1 = @SQL1 + ' declare @TotalCount int'    --声明一个变量,总记录数
set @SQL1 = @SQL1 + ' declare @PageCount int'    --声明一个变量,总页数
set @SQL1 = @SQL1 + ' declare @PageIndex int'    --声明一个变量,页索引
set @SQL1 = @SQL1 + ' declare @StartRow int'    --声明一个变量,当前页第一条记录的索引

set @SQL1 = @SQL1 + ' select @TotalCount=count(*) from ' + @Tables + @Where    --获取总记录数
set @SQL1 = @SQL1 + ' if @PageCount @PageCount and @PageCount>0 set @PageIndex=@PageCount'
set @SQL1 = @SQL1 + ' set @StartRow=(@PageIndex-1)*' + convert(varchar, @PageSize) + '+1'

if (charindex(',', @OrderBy)=0 and charindex(@PK, @OrderBy)>0)
begin
    --****************************************************************************
    --****************不需要创建主键********************************************
    --****************************************************************************
    declare @SortDirection varchar(10)    --排序方向,>=:升序, 0
        set @SortDirection = '=''' + @TargetPeriodBegin + ''''
if (len(@TargetPeriodEnd)>0)
    set @Condition = @Condition + ' and A.TargetPeriod 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 模糊查询的通用存储过程
  • 一个基于ROW_NUMBER()的通用分页存储过程代码
  • sqlserver 通用分页存储过程
  • 基于Sql Server通用分页存储过程的解决方法
  • SQL Server 分页查询通用存储过程(只做分页查询用)
  • SQL Server通用分页存储过程(非游标方式)
  • 存储过程实现(可带查询条件/万能分页/通用)
  • SQL Server的通用分页存储过程 未使用游标,速度更快!
  • 将mater库中的系统存储过程批量生成*.sql文件 通用且非常实用
  • c++通用模板类(template class)定义实现详细介绍
  • 通用信息系统框架
  • linux的软件能通用吗?
  • 交叉编译器可以通用吗?
  • 通用LINUX C类库 jzlibs
  • 通用CAD零件库系统
  • redhat 8.0有无通用用户名,密码?
  • 可扩展二进制通用协议 XBUP
  • memoization通用框架 C++Memo
  • 通用数据压缩工具 zlite
  • 通用库支持脚本 libtool
  • 通用数据结构库 GDSL
  • 银行通用接口 AqBanking
  • 请问ncurses与curses有区别吗?有什么区别?在这两个库下编写的程序通用吗?
  • 通用并发 Java 对象池 Vibur Object Pool
  • 通用DAO类 yagdao
  • 通用WEB框架 Webx
  • 请问某个数据库(如oracle)的jdbc驱动程序是不是在所有平台下通用?
  • 请问Linux数据库编程是否也可以支持通用的SQL语言进行数据库编写.
  • 怎么才能把LInux驱动做成通用的(与厂商号和产品号无关)
  • 求个linux多线程编程的例子,要有线程池的 通用些更好


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3