From: SVN by r. <sv...@ca...> - 2008-02-15 14:43:31
|
Author: roy Date: 2008-02-15 15:43:21 +0100 (Fri, 15 Feb 2008) New Revision: 237 Modified: src/main/java/nl/improved/sqlclient/QueryExecutor.java src/main/java/nl/improved/sqlclient/SQLShell.java Log: improved cancel support Modified: src/main/java/nl/improved/sqlclient/QueryExecutor.java =================================================================== --- src/main/java/nl/improved/sqlclient/QueryExecutor.java 2008-02-15 13:29:16 UTC (rev 236) +++ src/main/java/nl/improved/sqlclient/QueryExecutor.java 2008-02-15 14:43:21 UTC (rev 237) @@ -53,6 +53,7 @@ private String timeFormat; private String timestampFormat; private String dateFormat; + private boolean cancelled = false; /** * Constructor. @@ -166,6 +167,7 @@ public CharSequence cancel() { try { DBConnector.getInstance().getStatement().cancel(); + cancelled = true; return "Cancel accepted"; } catch (SQLException ex) { return "Cancel Failed: "+ ex.toString(); @@ -179,6 +181,7 @@ * @throws SQLException if the database could not execute the SQL query for some reason. */ protected CharSequence executeQuery(CharSequence command) throws SQLException { + cancelled = false; ResultSet results = DBConnector.getInstance().getStatement().executeQuery(command.toString()); //StringBuffer separator = new StringBuffer(); @@ -197,7 +200,7 @@ ResultBuilder displayValue = new ResultBuilder(); displayValue.setHeader(labels); int rowCount = 0; - while (results.next()) { + while (results.next() && !cancelled) { for (int col = 1; col <= metadata.getColumnCount(); col++ ) { displayValue.set(col-1, rowCount, getDisplayValue(results, col), isNumeric(metadata, col) ? ResultBuilder.Alignment.RIGHT : ResultBuilder.Alignment.LEFT); //try {Thread.sleep(10);} catch(Exception e2) {} @@ -211,6 +214,9 @@ footer.append("s"); } footer.append(" selected.\n"); + if (cancelled) { + footer.append("Aborted....\n"); + } footer.append("Query took: "+ (System.currentTimeMillis() - start) +" millis\n\n"); displayValue.setFooter(footer); return displayValue.toString(); Modified: src/main/java/nl/improved/sqlclient/SQLShell.java =================================================================== --- src/main/java/nl/improved/sqlclient/SQLShell.java 2008-02-15 13:29:16 UTC (rev 236) +++ src/main/java/nl/improved/sqlclient/SQLShell.java 2008-02-15 14:43:21 UTC (rev 237) @@ -1489,13 +1489,9 @@ @Override public boolean abort() { - try { - DBConnector.getInstance().getStatement().cancel(); - return true; - } catch (SQLException ex) { - Logger.getLogger(SQLShell.class.getName()).log(Level.SEVERE, null, ex); - return false; - } + //DBConnector.getInstance().getStatement().cancel(); + output(DBConnector.getInstance().getQueryExecutor().cancel()); + return true; } } |