免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
分頁查詢

--分頁查詢數(shù)據(jù)

--調(diào)用 sp_ShowPageQ 'TFetchData','id',0,'*',200,2,'fetchdt > ''2008-10-22'''

CREATE    PROCEDURE   sp_ShowPageQ

    @strTable       varchar(50),   --表名

    @strColumn      varchar(50),   --按該列來進(jìn)行分頁

    --@intColType     int,           --@strColumn列的類型,0-數(shù)字類型,1-字符類型,2-日期時間類型

    @intOrder       int,           --排序,0-順序,1-倒序

    @strColumnlist  varchar(800),  --要查詢出的字段列表,*表示全部字段

    @intPageSize    int,           --每頁記錄數(shù)

    @intPageNum     int,           --指定頁

    @strWhere       varchar(800)   --查詢條件

    --@intRecordCount int,           --總記錄數(shù)

    --@intPageCount   int            --總頁數(shù) 

 

  AS

 

  DECLARE   @sql    nvarchar(4000) --用于構(gòu)造SQL語句

  DECLARE   @where1 varchar(800)   --構(gòu)造條件語句

  DECLARE   @where2 varchar(800)   --構(gòu)造條件語句

  DECLARE   @intRecordCount int    --總記錄數(shù)

  DECLARE   @intPageCount int      --總頁數(shù)

 

  IF   @strWhere   is   null   or   rtrim(@strWhere)=''

  -- 為了避免SQL關(guān)鍵字與字段、表名等連在一起,首先為傳入的變量添加空格

 

  BEGIN  --沒有查詢條件

      SET   @where1=' WHERE '  

      SET   @where2=' '  

  END  

  ELSE   

  BEGIN  --有查詢條件 

      SET   @where1=' WHERE  ('+@strWhere+')  AND  '

      SET   @where2=' WHERE  ('+@strWhere+')  '  

  END

 

 

  set @strColumn = ' ' + @strColumn + ' '

  set @strColumnlist = ' ' + @strColumnlist + ' '

 

  --構(gòu)造SQL語句,計算總頁數(shù)。計算公式為 總頁數(shù) = Ceiling ( 記錄個數(shù) / 頁大小 )

  SET   @sql='SELECT   @intPageCount=CEILING((COUNT(*)+0.0)/'

        + CAST(@intPageSize   AS   varchar)

        + ')   FROM   ' + @strTable + @where2

 

  --執(zhí)行SQL語句,計算總頁數(shù),并將其放入@intPageCount變量中

  EXEC sp_executesql  @sql,N'@intPageCount int OUTPUT',@intPageCount OUTPUT

 

 

  --計算記錄數(shù) @intRecordCount

  SET   @sql='SELECT   @intRecordCount=COUNT(*) FROM   ' + @strTable + @where2

  --執(zhí)行SQL語句,計算記錄數(shù),并將其放入@intRecordCount 變量中

 

  EXEC sp_executesql  @sql,N'@intRecordCount  int OUTPUT',@intRecordCount OUTPUT

 

 

  --將總頁數(shù)放到查詢返回記錄集的第一個字段前,此語句可省略

  SET  @strColumnlist= ' '+Cast(@intPageCount as varchar(30)) + ' as PageCount,'+

                        Cast(@intRecordCount as varchar(30)) + ' as RecordCount,' + @strColumnlist  

 

  IF   @intOrder=0   --構(gòu)造升序的SQL

 

      SET @sql='SELECT TOP '+ CAST(@intPageSize   AS   varchar)  +

               @strColumnlist +  

               ' FROM ' + @strTable + @where1 +

               @strColumn + '>(SELECT MAX('+@strColumn+')  '+  

               ' FROM (SELECT TOP '+ CAST(@intPageSize*(@intPageNum - 1)  AS  varchar) +  

               @strColumn + ' FROM '+ @strTable+@where2+'ORDER  BY '+@strColumn+')  t)  ORDER  BY '+ @strColumn  

 

  ELSE              --構(gòu)造降序的SQL

 

      SET @sql='SELECT TOP '+ CAST(@intPageSize   AS   varchar)  +

               @strColumnlist+  

               ' FROM '+ @strTable + @where1 +

               @strColumn + '<(SELECT   MIN('+@strColumn+')   '+  

               ' FROM (SELECT TOP '+ CAST(@intPageSize*(@intPageNum - 1)  AS  varchar) +  

               @strColumn + ' FROM '+ @strTable+@where2+'ORDER   BY '+@strColumn+'   DESC)   t)   ORDER   BY   '+  

               @strColumn + ' DESC'       

 

 

  IF   @intPageNum=1--第一頁

 

      SET   @sql='SELECT   TOP   '+CAST(@intPageSize   AS   varchar) + @strColumnlist + ' FROM '+@strTable+  

                 @where2+'ORDER   BY   '+@strColumn+CASE   @intOrder WHEN  0 THEN  ''  ELSE  '  DESC' 

 

 

  END  

  --PRINT   @sql  

 

  EXEC(@sql)  

 

 

 

 

GO

 

  CREATE  procedure PaginationQuery        

  @p_selectSQL   nvarchar(4000), --要執(zhí)行的sql語句  

  @p_curPage   int=1 out,   --要顯示的頁碼  

  @p_pageSize   int=20, --每頁的大小  

  @p_totalRecords   int=0   out, --記錄數(shù)  

  @p_totalPages   int=0   out --總頁數(shù)  

  as  

  set nocount on  

  declare  

     @p1 int,

     @tmpCur int  

 

  exec sp_cursoropen @p1 output,@p_selectSQL,@scrollopt=1,@ccopt=1,@rowcount=@p_totalPages output  

  if @p_curPage<1

    set @p_curPage=1

  if @p_curPage*@p_pageSize>@p_totalPages

    set @p_curPage=ceiling(1.0*@p_totalPages/@p_pageSize)

  select @tmpCur=@p_curPage

 

  select @p_totalRecords=@p_totalPages+1,@p_totalPages=ceiling(1.0*@p_totalPages/@p_pageSize),@p_curPage=(@p_curPage-1)*@p_pageSize+1      

  exec   sp_cursorfetch   @p1,16,@p_curPage,@p_pageSize    

  select @p_curPage=@tmpCur

  exec   sp_cursorclose   @p1  

  set nocount off

 

GO

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
一個struts+sql server得分頁(存儲過程版)
C# SqlServer連接類 操作類 含存儲過程操作
SQLSERVER的JSP分頁程序
oracle 數(shù)據(jù)庫,分頁問題。簡單經(jīng)典的。
jsp購物車源碼①
jsp分頁顯示
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服