数据库分页存储过程(3)

ExpandedBlockStart.gif ContractedBlock.gif /**/ /*
InBlock.gif******************************************************************************************
InBlock.gif  存储过程名称:Common_Pagination
InBlock.gif  存储过程功能:通用分页存储过程
InBlock.gif  操 作 说 明 :
InBlock.gif        
InBlock.gif  设 计 时 间 :2004年11月01日
InBlock.gif  代码设计者  :小朱(zsy619@163.com)
InBlock.gif******************************************************************************************
InBlock.gif  功能描述:
InBlock.gif
InBlock.gif******************************************************************************************
InBlock.gif  如果您修改了我的程序,请留下修改记录,以便对程序进行维护,谢谢  !!!
InBlock.gif==========================================================================================
InBlock.gif  修改人   修改时间    修改原因
InBlock.gif------------------------------------------------------------------------------------------
InBlock.gif
InBlock.gif==========================================================================================
InBlock.gif******************************************************************************************
InBlock.gif  备注:
InBlock.gif
InBlock.gif******************************************************************************************
ExpandedBlockEnd.gif
*/

None.gif
CREATE   PROCEDURE   [ dbo ] . [ Common_Pagination ]
None.gif     
@SQL            varchar ( 8000 ),         -- TSQL语句
None.gif
      @PageCurr           int ,             -- 第几页
None.gif
      @PageSize       int ,                 -- PageSize
None.gif
      @ID           varchar ( 255 ),             -- 关键字
None.gif
      @Sort           varchar ( 255 ),             -- 排序字段
None.gif
      @desc           bit   =   0 ,             -- 升序/降序
None.gif
     @pageCount   int  output
None.gif
AS
None.gif    
None.gif    
declare   @Str   varchar ( 8000 )
None.gif
None.gif    
if  ( @desc   =   1 )
None.gif        
set   @Str   =   ' SELECT TOP  '   +   CAST ( @PageSize   as   varchar ( 20 )) 
None.gif             
+   '  * FROM ( '   +   @SQL   +   ' ) T WHERE T. '   +   @ID   +   '  NOT IN (SELECT TOP  '
None.gif             
+   cast (( @PageSize * ( @PageCurr - 1 ))  as   varchar ( 20 ))  +   '   '
None.gif             
+   @ID   +   '  FROM ( '   +   @SQL   +   ' ) T2  ORDER BY  '   +   @Sort   +   '  DESC) ORDER BY  '
None.gif             
+   @Sort
None.gif    
else
None.gif        
set   @Str   =   ' SELECT TOP  '   +   CAST ( @PageSize   as   varchar ( 20 ))  +   '  * FROM ( '
None.gif             
+   @SQL   +   ' ) T WHERE T. '   +   @ID   +   '  NOT IN (SELECT TOP  '
None.gif             
+   cast (( @PageSize * ( @PageCurr - 1 ))  as   varchar ( 20 ))  +   '   '   +   @ID   +   '  FROM ( '  
None.gif             
+   @SQL   +   ' ) T2  ORDER BY  '   +   @Sort   +   '  ASC) ORDER BY  '   +   @Sort
None.gif    
None.gif    
if  ( @desc   =   1 )
None.gif        
set   @str   =   @str   +   '  DESC '
None.gif    
else
None.gif        
set   @str   =   @str   +   '  ASC '
None.gif
None.gif
None.gif    
exec ( @Str )
None.gif    
select   @Str = ' select  ' + @Sort + '  from ( ' + @sql + ' ) t '
None.gif    
exec ( @str )
None.gif    
select   @pageCount = @@rowcount
None.gif
GO
None.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值