一聚教程网:一个值得你收藏的教程网站

热门教程

高效率jsp+mssql存储过程通用数据库分页

时间:2022-06-29 00:44:14 编辑:袖梨 来源:一聚教程网

高效率jsp教程+mssql存储过程通用数据库教程分页

CREATE   PROCEDURE   Ture_Page

        @PageSize         int,                 --每页的行数
        @PageIndex         int,                 --1   代表第一页
        @Col                 varchar(200),         --要显示的字段
        @Table                 varchar(200),         --所用到的表,复条的话就写from与where之间的内容
        @Where         varchar(200)= ' ',         --所用到的条件
        @OKey                 varchar(50),         --排序字段
        @Order                 varchar(20)= 'ASC '         --排序方式

as
  declare   @cmdstr   varchar(2000)
  set   nocount   on
               
                set   @cmdstr= 'select   top   '
                set   @cmdstr=@cmdstr+convert(nvarchar,@PageSize)
                if   @Order= 'DESC '   and   @PageIndex> 1
  set   @cmdstr=@cmdstr+ '   '+@Col+ '   from   '+@Table+ '   where   '+@OKey+ ' < '
                else   if   @PageIndex=1
  set   @cmdstr=@cmdstr+ '   '+@Col+ '   from   '+@Table+ '   where   '+@OKey+ '> = '
                else
  set   @cmdstr=@cmdstr+ '   '+@Col+ '   from   '+@Table+ '   where   '+@OKey+ '> '
                if   @PageIndex> 1
                    begin
    if   @Order= 'ASC '
                          set   @cmdstr=@cmdstr+ '(select   max   ( '+@OKey+ ')   from   (select   top   '
  else
                set   @cmdstr=@cmdstr+ '(select   min   ( '+@OKey+ ')   from   (select   top   '  
                        set   @cmdstr=@cmdstr+convert(nvarchar,(@PageIndex-1)*@PageSize)
                        set   @cmdstr=@cmdstr+ '   '+@OKey+ '   from   '+@Table+ '   order   by   '+@OKey+ '   '+@Order+ ')   as   t)   '
                    end
                else
                    set   @cmdstr=@cmdstr+ '0   '
                if   @Where <> ' '
                        set   @cmdstr=(@cmdstr+ '   and   '+@Where+ '   order   by   '+@OKey+ '   '+@Order)
                else
                        set   @cmdstr=(@cmdstr+ 'order   by   '+@OKey+ '   '+@Order)
               
  print   @cmdstr
                exec(@cmdstr)
        set   nocount   off
GO %>

热门栏目