# HG changeset patch # User František Kučera # Date 1387752907 -3600 # Node ID b2ff3b2d58b2cd9a584fb79993bfd0961de67431 # Parent 9335cf31c0f2b068a75a49b660653ccc996b4c53 accept SQL commands returning more ResultSets diff -r 9335cf31c0f2 -r b2ff3b2d58b2 java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java --- a/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java Sun Dec 22 23:31:55 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/DatabaseConnection.java Sun Dec 22 23:55:07 2013 +0100 @@ -76,8 +76,22 @@ formatter.writeParameters(sqlCommand.getParameters()); try (PreparedStatement ps = sqlCommand.prepareStatement(connection)) { sqlCommand.parametrize(ps); - try (ResultSet rs = ps.executeQuery()) { - processResultSet(rs, formatter); + + boolean isRS = ps.execute(); + if (isRS) { + try (ResultSet rs = ps.getResultSet()) { + processResultSet(rs, formatter); + } + } else { + /** + * TODO: process UPDATE command + */ + } + + while (ps.getMoreResults() || ps.getUpdateCount() > -1) { + /** + * TODO: process more RS or UPDATEs + */ } } diff -r 9335cf31c0f2 -r b2ff3b2d58b2 java/sql-dk/src/info/globalcode/sql/dk/SQLCommand.java --- a/java/sql-dk/src/info/globalcode/sql/dk/SQLCommand.java Sun Dec 22 23:31:55 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/SQLCommand.java Sun Dec 22 23:55:07 2013 +0100 @@ -36,7 +36,9 @@ this.query = query; } - public abstract PreparedStatement prepareStatement(Connection c) throws SQLException; + public PreparedStatement prepareStatement(Connection c) throws SQLException { + return c.prepareStatement(query); + } public abstract void parametrize(PreparedStatement ps) throws SQLException; diff -r 9335cf31c0f2 -r b2ff3b2d58b2 java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNamed.java --- a/java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNamed.java Sun Dec 22 23:31:55 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNamed.java Sun Dec 22 23:55:07 2013 +0100 @@ -36,11 +36,6 @@ } @Override - public PreparedStatement prepareStatement(Connection c) throws SQLException { - throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. - } - - @Override public void parametrize(PreparedStatement ps) throws SQLException { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } diff -r 9335cf31c0f2 -r b2ff3b2d58b2 java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNumbered.java --- a/java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNumbered.java Sun Dec 22 23:31:55 2013 +0100 +++ b/java/sql-dk/src/info/globalcode/sql/dk/SQLCommandNumbered.java Sun Dec 22 23:55:07 2013 +0100 @@ -37,11 +37,6 @@ } @Override - public PreparedStatement prepareStatement(Connection c) throws SQLException { - return c.prepareStatement(getQuery()); - } - - @Override public void parametrize(PreparedStatement ps) throws SQLException { int i = 1; for (Parameter p : notNull(parameters)) {