|
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;
}
}
|