Dag, Rick.. thanks for your replies. I am not subscribed to the list,
but saw them in archive.
Unfortunately a workaround won't work. This is support for stored
procedures across all databases that I am adding in Hibernate. So
there has to be a certain level of consistency. I'll just add a note
that stored procedures doing manipulation will not work correctly with
Derby (in terms of getting the "affect rows" count) when used in
embedded mode and reference to DERBY-211.
On Thu 01 Aug 2013 09:02:15 AM CDT, Steve Ebersole wrote:
Looks like I am seeing https://issues.apache.org/jira/browse/DERBY-211
On Wed 31 Jul 2013 07:02:01 PM CDT, Steve Ebersole wrote:
I am trying to work out how to define a Java stored procedure using
Derby that performs a insert/update/delete and results in the proper
"update count" on the JDBC client. But I have so far been unsuccessful.
Here is what I have...
First, through JDBC I execute:
create procedure deleteAllUsers()
language java
external name 'TheClass.deleteAllUsers'
parameter style java
TheClass.deleteAllUsers looks like:
public static void deleteAllUsers() {
Connection conn = DriverManager.getConnection(
"jdbc:default:connection" );
PreparedStatement ps = conn.prepareStatement( "delete from
t_user" );
int count = ps.executeUpdate();
System.out.println( "Count : " + count );
ps.close();
conn.close();
}
And on the JDBC client side:
Connection conn = ...;
CallableStatement stmnt = conn.prepareCall( "{call deleteAllUsers()}" );
// yes I know this could be stmnt.executeUpdate()...
stmnt.execute();
int count = stmnt.getUpdateCount();
So the deleteAllUsers() prints the correct count. But on the client,
I always get zero (and not -1).
Obviously I am doing something wrong. Any pointers?
Thanks,
Steve