import com.quantum.model.Bookmark;
import com.quantum.model.BookmarkCollection;
import com.quantum.sql.MultiSQLServer;
+import com.quantum.sql.SQLResultSetCollection;
+import com.quantum.sql.SQLResultSetResults;
import com.quantum.sql.SQLResults;
+import com.quantum.sql.SQLUpdateResults;
import com.quantum.ui.dialog.ExceptionDisplayDialog;
+import com.quantum.ui.dialog.SQLExceptionDialog;
import com.quantum.ui.dialog.SimpleSelectionDialog;
import com.quantum.util.connection.ConnectionUtil;
import com.quantum.view.LogProxy;
-import com.quantum.view.tableview.DefaultSizes;
import com.quantum.view.tableview.TableView;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jface.action.Action;
import org.eclipse.jface.action.IStatusLineManager;
import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.actions.SelectionListenerAction;
/**
* @author BC
*/
-public abstract class BaseExecuteAction extends Action {
+public abstract class BaseExecuteAction extends SelectionListenerAction {
class Metrics {
int resultCount = 0;
if (results == null) {
errorCount++;
} else {
- queryDuration += results.getTime()/1000.0; // calculate the execution time (in seconds)
+ queryDuration += results.getTime()/1000.0;
resultCount++;
if (results.isResultSet()) {
resultsDisplayed++;
} else {
- resultUpdateCount += results.getUpdateCount();
+ resultUpdateCount += ((SQLUpdateResults) results).getUpdateCount();
}
}
}
String execute1 = Messages.getString(BaseExecuteAction.class, "execute1");
String execute2 = Messages.getString(BaseExecuteAction.class, "execute2");
+ protected BaseExecuteAction(String text) {
+ super(text);
+ }
+
+ protected BaseExecuteAction() {
+ super(null);
+ }
+
public void run() {
Bookmark bookmark = getBookmark();
if (bookmark != null) {
} catch (IOException e) {
ExceptionDisplayDialog.openError(getShell(), null, null, e);
} catch (SQLException e) {
- ExceptionDisplayDialog.openError(getShell(), null, null, e);
+ SQLExceptionDialog.openException(getShell(), bookmark, e);
} catch (CoreException e) {
ErrorDialog.openError(getShell(), null, null, e.getStatus());
}
String query = (String) queries.get(i);
System.out.println(">" + query + "<"); //$NON-NLS-1$ //$NON-NLS-2$
if (query != null && query.trim().length() > 0) {
- SQLResults results = getSQLResults(connection, server, query);
+ SQLResults results = getSQLResults(bookmark, connection, server, query);
metrics.measure(results);
if (results != null) {
bookmark.addQuery(query);
if (results.isResultSet()) {
- TableView.getInstance().loadQuery(bookmark, results);
+ SQLResultSetCollection.getInstance().addSQLResultSet(
+ (SQLResultSetResults) results);
+ activateTableView();
}
}
}
}
/**
+ *
+ */
+ private void activateTableView() {
+ TableView.getInstance();
+ }
+
+ /**
* @return
* @throws CoreException
* @throws IOException
private void displayFinalStatusMessage(Metrics metrics) {
String message = Messages.getString(
BaseExecuteAction.class,
- "done", //$NON-NLS-1$ //$NON-NLS-2$
+ "done", //$NON-NLS-1$
metrics.getResults());
if (metrics.hasErrors()) {
getStatusLineManager().setErrorMessage(
ImageStore.getImage(ImageStore.STOP), message);
} else {
- getStatusLineManager().setMessage(
- ImageStore.getImage(ImageStore.SUCCESS), message);
+ getStatusLineManager().setMessage(message);
}
}
* @param query
* @return
*/
- private SQLResults getSQLResults(Connection connection, MultiSQLServer server, String query) {
+ private SQLResults getSQLResults(Bookmark bookmark, Connection connection, MultiSQLServer server, String query) {
SQLResults results = null;
try {
- results = server.execute(connection, query, 1,
- DefaultSizes.PAGE_SIZE, DefaultSizes.MAX_COLUMN_SIZE);
+ results = server.execute(bookmark, connection, query);
} catch (SQLException e) {
LogProxy log = LogProxy.getInstance();
log.addText(LogProxy.ERROR,
"Error Executing: " + query + ":" + e.toString(), e); //$NON-NLS-1$ //$NON-NLS-2$
- MessageDialog.openConfirm(getShell(),
- "Database returned error",
- e.getLocalizedMessage()); //$NON-NLS-1$
+ SQLExceptionDialog.openException(getShell(), bookmark, e);
}
return results;
}