[Squirrel-sql-commits] sql12/fw/src/net/sourceforge/squirrel_sql/fw/sql SQLUtilities.java, 1.6, 1.
A Java SQL client for any JDBC compliant database
Brought to you by:
colbell,
gerdwagner
From: Rob M. <man...@us...> - 2007-09-22 17:36:44
|
Update of /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/sql In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv5195/fw/src/net/sourceforge/squirrel_sql/fw/sql Modified Files: SQLUtilities.java Log Message: Added new method that will allow the statement that opened a ResultSet to be closed when the ResultSet is closed. Index: SQLUtilities.java =================================================================== RCS file: /cvsroot/squirrel-sql/sql12/fw/src/net/sourceforge/squirrel_sql/fw/sql/SQLUtilities.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** SQLUtilities.java 3 Aug 2007 09:54:07 -0000 1.6 --- SQLUtilities.java 22 Sep 2007 17:36:41 -0000 1.7 *************** *** 315,334 **** /** * Closes the specified ResultSet safely (with no exceptions) and logs a ! * debug message if SQLException is encountered. * * @param rs the ResultSet to close - it can be null. ! */ public static void closeResultSet(ResultSet rs) { if (rs == null) { return; } try { rs.close(); } catch (SQLException e) { if (s_log.isDebugEnabled()) { ! s_log.error("Unexpected exception while closing ResultSet: "+ e.getMessage(), e); } } } --- 315,366 ---- /** * Closes the specified ResultSet safely (with no exceptions) and logs a ! * debug message if SQLException is encountered. This will not close the ! * Statement that created the ResultSet. * * @param rs the ResultSet to close - it can be null. ! */ public static void closeResultSet(ResultSet rs) { + closeResultSet(rs, false); + } + + /** + * Closes the specified ResultSet safely (with no exceptions) and logs a + * debug message if SQLException is encountered. This will also close the + * Statement that created the ResultSet if closeStatement boolean is true. + * + * @param rs the ResultSet to close - it can be null. + * @param closeStatement if true, will close the Statement that created this + * ResultSet; false - will not close the Statement. + */ + public static void closeResultSet(ResultSet rs, boolean closeStatement) { if (rs == null) { return; } + // Close the ResultSet try { rs.close(); } catch (SQLException e) { if (s_log.isDebugEnabled()) { ! s_log.debug("Unexpected exception while closing ResultSet: "+ e.getMessage(), e); } } + if (closeStatement) { + // Close the ResultSet's Statement if it is non-null. This frees open + // cursors. + + try { + Statement stmt = rs.getStatement(); + if (stmt != null) { + stmt.close(); + } + } catch (SQLException e) { + if (s_log.isDebugEnabled()) { + s_log.debug("Unexpected exception while closing " + + "Statement: "+ + e.getMessage(), e); + } + } + } } |