http://www.cnblogs.com/maiqi/archive/2006/05/04/391349.html
修改了一下源码和存储过程,可同时返回分页所需数据的同时,返回所有数据的个数.
修正过的通用分页存储过程 ------------------------------------
修正过的通用分页存储过程 
--用途:分页存储过程(对有主键的表效率极高)  
修正过的通用分页存储过程 
--说明:
修正过的通用分页存储过程 
------------------------------------
修正过的通用分页存储过程 
修正过的通用分页存储过程 ALTER PROCEDURE UP_GetRecordByPage
修正过的通用分页存储过程     @tblName      varchar(
255),       -- 表名
修正过的通用分页存储过程     @fldName      varchar(
255),       -- 主键字段名
修正过的通用分页存储过程     @PageSize     
int = 10,           -- 页尺寸
修正过的通用分页存储过程    @PageIndex    
int = 1,            -- 页码
修正过的通用分页存储过程    @RowCount    
int output,            -- 返回记录总数
修正过的通用分页存储过程    @OrderType    bit 
= 0,            -- 设置排序类型, 非 0 值则降序
修正过的通用分页存储过程    @strWhere     varchar(
1000= ''  -- 查询条件 (注意: 不要加 where)
修正过的通用分页存储过程AS
修正过的通用分页存储过程
修正过的通用分页存储过程declare @strSQL   varchar(
6000)       -- 主语句
修正过的通用分页存储过程declare @strTmp   varchar(
100)        -- 临时变量
修正过的通用分页存储过程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
修正过的通用分页存储过程
修正过的通用分页存储过程
修正过的通用分页存储过程declare @sql NVARCHAR(
400)
修正过的通用分页存储过程
set @sql = N'select @RowCount=count(*) from '+@tblName+' where '+ @strWhere
修正过的通用分页存储过程EXEC sp_executesql @sql,N
'@RowCount int OUT',@RowCount OUT  
修正过的通用分页存储过程
修正过的通用分页存储过程exec (@strSQL)
修正过的通用分页存储过程


数据层也相应的做了些修改:

         }

相关文章:

  • 2022-01-31
猜你喜欢
  • 2021-06-26
  • 2022-12-23
  • 2021-11-27
  • 2021-12-04
相关资源
相似解决方案