java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java
branchv_0
changeset 86 6b0eb3b22eb8
parent 65 f05be87239ad
child 91 43e8d52091d5
equal deleted inserted replaced
85:b9b4e95240e1 86:6b0eb3b22eb8
    24 import java.sql.Connection;
    24 import java.sql.Connection;
    25 import java.sql.DriverManager;
    25 import java.sql.DriverManager;
    26 import java.sql.PreparedStatement;
    26 import java.sql.PreparedStatement;
    27 import java.sql.ResultSet;
    27 import java.sql.ResultSet;
    28 import java.sql.SQLException;
    28 import java.sql.SQLException;
       
    29 import java.sql.SQLWarning;
    29 import java.util.logging.Level;
    30 import java.util.logging.Level;
    30 import java.util.logging.Logger;
    31 import java.util.logging.Logger;
    31 
    32 
    32 /**
    33 /**
    33  *
    34  *
    71 					processResultSet(sqlCommand, rs, formatter);
    72 					processResultSet(sqlCommand, rs, formatter);
    72 				}
    73 				}
    73 			} else {
    74 			} else {
    74 				processUpdateResult(sqlCommand, ps, formatter);
    75 				processUpdateResult(sqlCommand, ps, formatter);
    75 			}
    76 			}
       
    77 			logWarnings(ps);
    76 
    78 
    77 			while (ps.getMoreResults() || ps.getUpdateCount() > -1) {
    79 			while (ps.getMoreResults() || ps.getUpdateCount() > -1) {
    78 				ResultSet rs = ps.getResultSet();
    80 				ResultSet rs = ps.getResultSet();
    79 				if (rs == null) {
    81 				if (rs == null) {
    80 					processUpdateResult(sqlCommand, ps, formatter);
    82 					processUpdateResult(sqlCommand, ps, formatter);
    81 				} else {
    83 				} else {
    82 					processResultSet(sqlCommand, rs, formatter);
    84 					processResultSet(sqlCommand, rs, formatter);
    83 					rs.close();
    85 					rs.close();
    84 				}
    86 				}
       
    87 				logWarnings(ps);
    85 			}
    88 			}
    86 		}
    89 		}
    87 	}
    90 	}
    88 
    91 
    89 	private void processUpdateResult(SQLCommand sqlCommand, PreparedStatement ps, Formatter formatter) throws SQLException {
    92 	private void processUpdateResult(SQLCommand sqlCommand, PreparedStatement ps, Formatter formatter) throws SQLException {
   118 			formatter.writeEndRow();
   121 			formatter.writeEndRow();
   119 		}
   122 		}
   120 
   123 
   121 	}
   124 	}
   122 
   125 
       
   126 	private void logWarnings(PreparedStatement ps) throws SQLException {
       
   127 		SQLWarning w = ps.getWarnings();
       
   128 		while (w != null) {
       
   129 			log.log(Level.WARNING, "SQL: {0}", w.getLocalizedMessage());
       
   130 			w = w.getNextWarning();
       
   131 		}
       
   132 		ps.clearWarnings();
       
   133 	}
       
   134 
   123 	/**
   135 	/**
   124 	 * Tests if this connection is live.
   136 	 * Tests if this connection is live.
   125 	 *
   137 	 *
   126 	 * @return true if test was successful
   138 	 * @return true if test was successful
   127 	 * @throws SQLException if test fails
   139 	 * @throws SQLException if test fails