Multiple ResultSets in JDBC
09 September 2003
I've never had the occasion to even expect to have more than one ResultSet returned by one execution of a Statement, but that's exactly what I got to do today. It seems that any query execute()ed from a sybase stored proc drops a ResultSet, so I need to iterate through them to get all the results, not just rows in a single ResultSet.
Here's a bit of example code to demonstrate navigating through the multiple ResultSets:
CallableStatment cstmt =
conn.prepareQuery("{ call my_proc() }");
cstmt.execute();
ResultSet rs = null;
do {
// don't process update counts, only resultsets
if ((rs = cstmt.getResultSet()) != null) {
while (rs.next()) {
System.out.println(rs.getString("field"));
}
}
} while (cstmt.getMoreResults() // advance current rs
|| cstmt.getUpdateCount() != -1); // case of update count
For any more info, check your local javadocs.