JAVA调用Sybase分页总结

最近一段时间做的这个项目用的是Sybase,用到了Sybase分页。在网上找了许多,Sybase分页都是用临时表来做的。最后找到了一个存储过程,不过这个存储过程如果直接用有一些问题,所以改了一下。还有就是Sybase存储过程在和java一起用时有几个参数要设置一下。在这都做了说明,下面写把这个存储过程拿出来

create procedure dbo.getPageWiseData   
(   
@sqlStr varchar(8000),   
@start int,   
@limit int  
)   
as   
DECLARE @dt varchar(10)    
BEGIN   
  
--# variable to hold the first row number of the page.   
SELECT @dt= substring(convert(varchar, rand()), 3, 10)    
  
SELECT @sqlStr = stuff(@sqlStr, 1, 7, 'select rownum=identity(12), ')   
SELECT @sqlStr = stuff(@sqlStr, charindex(' FROM ', upper(@sqlStr)), 6 ,' into tempdb..Lining' + @dt + ' from ')
commit   
execute (@sqlStr)   

--# select the data with the calculated range for first and last row on page.   
select @sqlStr = 'select * from tempdb..Lining' + @dt + ' where rownum > '+convert(varchar, @start)+' and rownum <= '+convert(varchar, (@start+@limit))    
execute (@sqlStr)   
  

SELECT @sqlStr = 'DROP TABLE tempdb..Lining'+@dt  
EXECUTE (@sqlStr)    
END

 然后是设置参数,否则在java中会报错。

sp_procxmode getPageWiseData,'anymode'//对存储过程设置事务模式为anymode
use master
exec dbo.sp_dboption tempdb, 'ddl in tran', true, null//设置tempdb的ddl in tran参数为true

exec dbo.sp_dboption tempdb, 'allow nulls by default', true, null//设置tempdb的allow nulls by default参数为true

 以上就是在java中调用sybase存储过程需要设置的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值