/**/
/*
******************************************************************************************
存储过程名称:Common_Pagination
存储过程功能:通用分页存储过程
操 作 说 明 :
设 计 时 间 :2004年11月01日
代码设计者 :小朱(zsy619@163.com)
******************************************************************************************
功能描述:
******************************************************************************************
如果您修改了我的程序,请留下修改记录,以便对程序进行维护,谢谢 !!!
==========================================================================================
修改人 修改时间 修改原因
------------------------------------------------------------------------------------------
==========================================================================================
******************************************************************************************
备注:
******************************************************************************************
*/
CREATE PROCEDURE [ dbo ] . [ Common_Pagination ]
@SQL varchar ( 8000 ), -- TSQL语句
@PageCurr int , -- 第几页
@PageSize int , -- PageSize
@ID varchar ( 255 ), -- 关键字
@Sort varchar ( 255 ), -- 排序字段
@desc bit = 0 , -- 升序/降序
@pageCount int output
AS
declare @Str varchar ( 8000 )
if ( @desc = 1 )
set @Str = ' SELECT TOP ' + CAST ( @PageSize as varchar ( 20 ))
+ ' * FROM ( ' + @SQL + ' ) T WHERE T. ' + @ID + ' NOT IN (SELECT TOP '
+ cast (( @PageSize * ( @PageCurr - 1 )) as varchar ( 20 )) + ' '
+ @ID + ' FROM ( ' + @SQL + ' ) T2 ORDER BY ' + @Sort + ' DESC) ORDER BY '
+ @Sort
else
set @Str = ' SELECT TOP ' + CAST ( @PageSize as varchar ( 20 )) + ' * FROM ( '
+ @SQL + ' ) T WHERE T. ' + @ID + ' NOT IN (SELECT TOP '
+ cast (( @PageSize * ( @PageCurr - 1 )) as varchar ( 20 )) + ' ' + @ID + ' FROM ( '
+ @SQL + ' ) T2 ORDER BY ' + @Sort + ' ASC) ORDER BY ' + @Sort
if ( @desc = 1 )
set @str = @str + ' DESC '
else
set @str = @str + ' ASC '
exec ( @Str )
select @Str = ' select ' + @Sort + ' from ( ' + @sql + ' ) t '
exec ( @str )
select @pageCount = @@rowcount
GO
******************************************************************************************
存储过程名称:Common_Pagination
存储过程功能:通用分页存储过程
操 作 说 明 :
设 计 时 间 :2004年11月01日
代码设计者 :小朱(zsy619@163.com)
******************************************************************************************
功能描述:
******************************************************************************************
如果您修改了我的程序,请留下修改记录,以便对程序进行维护,谢谢 !!!
==========================================================================================
修改人 修改时间 修改原因
------------------------------------------------------------------------------------------
==========================================================================================
******************************************************************************************
备注:
******************************************************************************************
*/
CREATE PROCEDURE [ dbo ] . [ Common_Pagination ]
@SQL varchar ( 8000 ), -- TSQL语句
@PageCurr int , -- 第几页
@PageSize int , -- PageSize
@ID varchar ( 255 ), -- 关键字
@Sort varchar ( 255 ), -- 排序字段
@desc bit = 0 , -- 升序/降序
@pageCount int output
AS
declare @Str varchar ( 8000 )
if ( @desc = 1 )
set @Str = ' SELECT TOP ' + CAST ( @PageSize as varchar ( 20 ))
+ ' * FROM ( ' + @SQL + ' ) T WHERE T. ' + @ID + ' NOT IN (SELECT TOP '
+ cast (( @PageSize * ( @PageCurr - 1 )) as varchar ( 20 )) + ' '
+ @ID + ' FROM ( ' + @SQL + ' ) T2 ORDER BY ' + @Sort + ' DESC) ORDER BY '
+ @Sort
else
set @Str = ' SELECT TOP ' + CAST ( @PageSize as varchar ( 20 )) + ' * FROM ( '
+ @SQL + ' ) T WHERE T. ' + @ID + ' NOT IN (SELECT TOP '
+ cast (( @PageSize * ( @PageCurr - 1 )) as varchar ( 20 )) + ' ' + @ID + ' FROM ( '
+ @SQL + ' ) T2 ORDER BY ' + @Sort + ' ASC) ORDER BY ' + @Sort
if ( @desc = 1 )
set @str = @str + ' DESC '
else
set @str = @str + ' ASC '
exec ( @Str )
select @Str = ' select ' + @Sort + ' from ( ' + @sql + ' ) t '
exec ( @str )
select @pageCount = @@rowcount
GO