日期:2014-05-17  浏览次数:20753 次

java调用sqlserver存储过程并返回游标的问题
本帖最后由 MrSeve 于 2013-06-20 10:11:49 编辑
这是我的存储过程(存储过程没问题):

CREATE PROCEDURE page2
@p INT,--页数
@n INT, --每页条目数
@student_cursor CURSOR VARYING OUTPUT
AS
SET @student_cursor= CURSOR FOR SELECT TOP (@n) * FROM [user] AS t WHERE t.id NOT IN(SELECT TOP ((@p-1)*(@n)) id FROM [user]);
OPEN @student_cursor;
GO

在java后台调用:

CallableStatement c = connection.prepareCall("{call page2 (?,?,?)}");
c.setInt(1, 1);
c.setInt(2, 3);
c.registerOutParameter(3,Types.OTHER);//我不知道该用什么类型,就写个OTHER吧
c.execute();
resultSet = (ResultSet) c.getObject(3);


如果是Oracle,可以直接设置输出参数:c.registerOutParameter(3,oracle.jdbc.OracleTypes.CURSOR);
但是在sqlserver数据库上,我窒息了(顺带吐槽下:热出翔~~)··求大神带走
SQL?Server Cursor 存储过程

------解决方案--------------------
该回复于2013-07-05 09:15:06被管理员删除