怎么取到sqlserver的系统存储过程sp_cursorfetch返回的结果集?

bhw0871 2004-10-26 02:47:11
在Java JSP/Servlet/JavaBean问了没有 ,来这求救啊!
帖子请看:
http://community.csdn.net/Expert/topic/3448/3448617.xml?temp=.7516138
...全文
406 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhn0410 2004-10-26
  • 打赏
  • 举报
回复
学习
zjcxc 2004-10-26
  • 打赏
  • 举报
回复
这是SQL未公开的存储过程,它的参数并没有公开,执行机制也无从知道,所以难知道是怎么回事.
bhw0871 2004-10-26
  • 打赏
  • 举报
回复
主要是想知道为什么得不到?继续up
zjcxc 2004-10-26
  • 打赏
  • 举报
回复
这样的话,估计你得改分页方法了. 或者看看你的jdbc有没有更新的版本.

bhw0871 2004-10-26
  • 打赏
  • 举报
回复
已经试过,只要不是exec sp_cursorfetch @P1,16,@currentpage,@pagesize 返回的结果集,用select语句或是存储过程(非sp_cursorfetch )返回的都可以正常得到结果集!
zjcxc 2004-10-26
  • 打赏
  • 举报
回复
看不懂jsp代码,不过,从代码分析来看,第二个记录集可以正常输出,而得到第三个记录集的方法与第二个一致,似乎不是代码的问题.

但存储过程本身是没有问题的.


楼主测试一下这样的调用:
exec page_proc 'select 总页数=3,总行数=22,当前页=1',1,10


--如果没有问题,再测试一下,把调用的表,改为查询用户表(不要查系统表,可能会是权限问题)
--如果还是有问题,则试试把存储过程修改为这样,看看第三个记录集是否可以得到结果:
CREATE procedure Page_proc
@sqlstr nvarchar(4000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 总页数,@rowcount as 总行数,@currentpage as 当前页
set @currentpage=(@currentpage-1)*@pagesize+1
--exec sp_cursorfetch @P1,16,@currentpage,@pagesize
select 总页数=3,总行数=22,当前页=1
exec sp_cursorclose @P1
set nocount off
GO
bhw0871 2004-10-26
  • 打赏
  • 举报
回复
等候...
zjcxc 2004-10-26
  • 打赏
  • 举报
回复
看看.

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧