读书人

调用存储过程后的返回值,该如何解决

发布时间: 2011-12-29 22:09:38 作者: rapoo

调用存储过程后的返回值
如下这个存储过程(sql2000)

create PROCEDURE a
as
declare @str varchar(1000)
set @str= 'select * from table '
exec(@str)

要怎样才能取得这个存储过程中exec(@str)里的值....

也就是说这个存储过程执行的时候会从table中取出所有值..

那我在java程序中调用这个存储过程怎样取里面所有的值

[解决办法]
mssql存储过程可以直接返回结果集:

String sql = "{call a()} ";
CallableStatement proc = conn.prepareCall(sql);
ResultSet rs = proc.executeQuery();

rs就是你所要的。
[解决办法]
你的例子

String str = "{call GetRecordFromPageU(?,?,?,?,?,?,?)} ";
CallableStatement sqlstmt=conn.prepareCall(str);
sqlstmt.setString(1, "cmm_V_shop_import_cal ");
sqlstmt.setString(2, "id ");
sqlstmt.setInt(3,15);
sqlstmt.setInt(4,curp);
sqlstmt.setInt(5,0);
sqlstmt.setInt(6,1);
sqlstmt.setString(7,where);
sqlstmt.execute();
rs=sqlstmt.getResultSet();

读书人网 >Java Web开发

热点推荐