62,623
社区成员
发帖
与我相关
我的任务
分享
boolean results = proc.execute(); //这里能返回吗?
System.out.println("UpdateCount: "+cout); //这里
if( rs!=null ) rs.close(); 条件
通过 JDBC 驱动程序 - 使用带有输出参数的存储过程
写个方法
返到到一个你想用地方
======================存储过程,数据库是Sybase
alter procedure
----- --- --- --- --- --- --- --- --- --- --- --- --- --- --- ---
DBA.GetNextPInvLineRecordID(out nextID integer)
begin
select MAX(recordID)+1 into nextID from PInvLines;
if(nextID is null) then
set nextID=1
end if
end
======================程序
con = cp.getConn();
con.setAutoCommit(true);
CallableStatement proc = con.prepareCall("{ ? = call dba.GetNextPInvLineRecordID() }");
//CallableStatement proc = con.prepareCall("{ call dba.GetNextPInvLineRecordID(?) }"); 这里改成这样试过也不行
proc.registerOutParameter(1, Types.INTEGER);
boolean results = proc.execute();
System.out.println("results: "+results);
int cout = proc.getUpdateCount();
System.out.println("UpdateCount: "+cout);
ResultSet rs = proc.getResultSet();
while (rs!=null && rs.next())
{
System.out.println("1: " + rs.getString(1));
}
if( rs!=null ) rs.close();
打印出来的结果是:
results: false
UpdateCount: 0
直接运行存储过程,是有值返回的,但我用JAVA调用的时候,为什么没有返回值呢?弄了半天没有解决,请大家帮忙看看是什么地方有问题。谢谢了。