日期:2014-05-18  浏览次数:20628 次

调用存储过程后的返回值
如下这个存储过程(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();