/*
******************************************************************************************
存储过程名称: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