Sybase数据库的分页功能

系统 1755 0

项目中需要用到Sybase数据库的分页功能,想尽各种办法都没有成功,最后用如下的存储过程成功实现功能,记录备忘。

 
        
          CREATE
        
        
          PROCEDURE
        
         jsp_query_page 
        
          @sql
        
        
          varchar
        
        (
        
          2000
        
        ),
        
          @start
        
        
          int
        
        , 
        
          @pageSize
        
        
          int
        
        
          as
        
        
          begin
        
        
          declare
        
        
          @ipage
        
        
          int
        
        
          declare
        
        
          @rcount
        
        
          int
        
        
          declare
        
        
          @execsql
        
        
          varchar
        
        (
        
          2000
        
        
          )

     
        
        
          declare
        
        
          @sql1
        
        
          varchar
        
        (
        
          2000
        
        
          ) 

     
        
        
          declare
        
        
          @t
        
        
          int
        
        ,
        
          @p
        
        
          int
        
        ,
        
          @n
        
        
          int
        
        ,
        
          @l
        
        
          int
        
        
          begin
        
        
          set
        
        
          @sql1
        
        
          =
        
        
          @sql
        
        
          set
        
        
          @n
        
        
          =
        
        
          0
        
        
          set
        
        
          @l
        
        
          =
        
        
          0
        
        
          set
        
        
          @t
        
        
          =
        
        
          charindex
        
        (
        
          '
        
        
          select 
        
        
          '
        
        ,
        
          lower
        
        (
        
          @sql
        
        
          ))

         
        
        
          set
        
        
          @sql
        
        
          =
        
        
          substring
        
        (
        
          @sql
        
        ,
        
          @t
        
        
          +
        
        
          7
        
        ,char_length(
        
          @sql
        
        )
        
          -
        
        
          7
        
        
          )

         
        
        
          set
        
        
          @n
        
        
          =
        
        
          @n
        
        
          +
        
        
          1
        
        
          set
        
        
          @l
        
        
          =
        
        
          @l
        
        
          +
        
        
          7
        
        
          while
        
        (
        
          @n
        
        
          !=
        
        
          0
        
        
          )

         
        
        
          begin
        
        
          set
        
        
          @t
        
        
          =
        
        
          charindex
        
        (
        
          '
        
        
          select 
        
        
          '
        
        ,
        
          lower
        
        (
        
          @sql
        
        
          ))

             
        
        
          set
        
        
          @p
        
        
          =
        
        
          charindex
        
        (
        
          '
        
        
          from 
        
        
          '
        
        ,
        
          lower
        
        (
        
          @sql
        
        
          ))

             
        
        
          if
        
         ((
        
          @t
        
        
          <
        
        
          @p
        
        ) 
        
          and
        
         (
        
          @t
        
        
          !=
        
        
          0
        
        
          ))

                 
        
        
          begin
        
        
          set
        
        
          @sql
        
        
          =
        
        
          substring
        
        (
        
          @sql
        
        ,
        
          @t
        
        
          +
        
        
          7
        
        ,char_length(
        
          @sql
        
        )
        
          -
        
        
          7
        
        
          )

                     
        
        
          set
        
        
          @n
        
        
          =
        
        
          @n
        
        
          +
        
        
          1
        
        
          set
        
        
          @l
        
        
          =
        
        
          @l
        
        
          +
        
        
          6
        
        
          +
        
        
          @t
        
        
          end
        
        
          else
        
        
          begin
        
        
          set
        
        
          @sql
        
        
          =
        
        
          substring
        
        (
        
          @sql
        
        ,
        
          @p
        
        
          +
        
        
          5
        
        ,char_length(
        
          @sql
        
        )
        
          -
        
        
          5
        
        
          )

                     
        
        
          set
        
        
          @n
        
        
          =
        
        
          @n
        
        
          -
        
        
          1
        
        
          set
        
        
          @l
        
        
          =
        
        
          @l
        
        
          +
        
        
          4
        
        
          +
        
        
          @p
        
        
          end
        
        
          end
        
        
          set
        
        
          @execsql
        
        
          =
        
        
          substring
        
        (
        
          @sql1
        
        ,
        
          1
        
        ,
        
          @l
        
        
          -
        
        
          5
        
        )
        
          +
        
        
          '
        
        
           ,sybid=identity(12) into #temp 
        
        
          '
        
        
          +
        
        
          substring
        
        (
        
          @sql1
        
        ,
        
          @l
        
        
          -
        
        
          4
        
        ,char_length(
        
          @sql1
        
        )
        
          -
        
        
          @l
        
        
          +
        
        
          5
        
        
          )

         
        
        
          select
        
        
          @rcount
        
        
          =
        
        
          @start
        
        
          +
        
        
          @pageSize
        
        
          set
        
        
          rowcount
        
        
          @rcount
        
        
          set
        
        
          @execsql
        
        
          =
        
        
          @execsql
        
        
          ||
        
        
          '
        
        
           select * from #temp where sybid>
        
        
          '
        
        
          ||
        
        
          convert
        
        (
        
          varchar
        
        ,
        
          @start
        
        ) 
        
          ||
        
        
          '
        
        
           and sybid <= 
        
        
          '
        
        
          ||
        
        
          convert
        
        (
        
          varchar
        
        ,
        
          @rcount
        
        
          ) 

         
        
        
          print
        
        
          @execsql
        
        
          execute
        
         (
        
          @execsql
        
        
          ) 

         
        
        
          set
        
        
          rowcount
        
        
          0
        
        
          end
        
        
          end
        
      

 

Sybase数据库的分页功能


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论