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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步