Sybase数据库的分页功能

项目中需要用到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

 

转载于:https://www.cnblogs.com/libaoting/p/4084663.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值