我用jdbc调用sybase存储过程,但不知怎样取得返回值,请指点

fffa 2001-08-21 02:44:48
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
haibei 2001-09-07
  • 打赏
  • 举报
回复
我也有类似的问题
sqlStmt = sqlCon.prepareCall("{call AMBI_CHG_ACC(?,?,?)}");
sqlStmt.setString(1,"111");
sqlStmt.setString(2,"16");
sqlStmt.registerOutParameter(3,java.sql.Types.VARCHAR);
sqlRst = sqlStmt.executeQuery();
取得结果用
sqlStmt.executeQuery(); 可以吗?
运行时报错,那用什么取得结果那
houguojun 2001-08-21
  • 打赏
  • 举报
回复
Try:
prepareCall("{call ?=EquipmentInsert(?,?,?,?,?,?,?,?,?,?,?,?)}")
fffa 2001-08-21
  • 打赏
  • 举报
回复
我说的返回值是指存储过程中使用return语句返回的值。
不过,我也有你说的这方面类似的问题,当存储过程中有错误时,比如说insert时主键duplicate, 我使用的是excute()方法执行存储过程,这样在执行时不会出现SQLException, 但在取output参数值时(我用的是getobjects()方法),会抛出SQLException。这样我就取不到output参数。请指点那些地方有错误。
  • 打赏
  • 举报
回复
回复人: nanman(南蛮) (2001-7-27 10:18:55) 得100分
用CallableStatement,返回参数要先注册,例如:
存储过程:
CREATE PROCEDURE EquipmentInsert (@EquipmentID NUMERIC(9,0) OUTPUT,@Category VARCHAR(20),@Name nVARCHAR(50),
@Level nchar(5), @NodeID CHAR(4), @AdminNodeID CHAR(4), @Keeper nvarchar(10), @Source varchar(50),
@Using CHAR(1),@EnrollIP char(15), @EnrollUser varchar(20), @Notes varchar(255) )
AS
INSERT INTO Equipment(Category,Name,Level,NodeID,AdminNodeID,Keeper,Source,Using,EnrollIP,EnrollUser,Notes)
values(@Category,@Name,@Level,@NodeID,@AdminNodeID,@Keeper,@Source,@Using,@EnrollIP,@EnrollUser,@Notes)
SELECT @EquipmentID=@@IDENTITY
调用:
CallableStatement cstmt = conn.prepareCall("{call EquipmentInsert(?,?,?,?,?,?,?,?,?,?,?,?)}");
cstmt.registerOutParameter(1,java.sql.Types.INTEGER);
cstmt.setString(2, "NetManagement"); cstmt.setString(3, Name);
cstmt.setString(4, Level); cstmt.setString(5, NodeID);
cstmt.setString(6, AdminNodeID); cstmt.setString(7, Keeper);
cstmt.setString(8,Source); cstmt.setString(9, "Y");
cstmt.setString(10, EnrollIP); cstmt.setString(11, EnrollUser);
cstmt.setString(12, Notes);
cstmt.executeUpdate();
iEquipmentID=cstmt.getInt(1);/*iEquipmentID是返回值*/

2,596

社区成员

发帖
与我相关
我的任务
社区描述
Sybase相关技术讨论区
社区管理员
  • Sybase社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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