X-Git-Url: http://git.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/BaseSQLPage.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/BaseSQLPage.java index 459a949..bdeea07 100644 --- a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/BaseSQLPage.java +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/wizards/BaseSQLPage.java @@ -1,49 +1,73 @@ package com.quantum.wizards; +import java.sql.SQLException; + import com.quantum.adapters.DatabaseAdapter; import com.quantum.model.Bookmark; import com.quantum.model.Column; -import com.quantum.model.ConnectionException; import com.quantum.model.Entity; -import com.quantum.sql.TableRow; -import com.quantum.view.ViewHelper; -import com.quantum.view.tableview.TableAdapter; +import com.quantum.model.NotConnectedException; +import com.quantum.sql.MultiSQLServer; +import com.quantum.sql.SQLResultSetResults; +import com.quantum.sql.SQLResults; +import com.quantum.ui.dialog.SQLExceptionDialog; +import com.quantum.util.connection.ConnectionUtil; import org.eclipse.jface.wizard.WizardPage; /** - * @author BC + * @author BC Holmes */ public abstract class BaseSQLPage extends WizardPage implements SQLPage { - protected TableRow row; - protected TableAdapter adapter; + protected SQLResultSetResults.Row row; + protected SQLResultSetResults results; + private ConnectionUtil connectionUtil = new ConnectionUtil(); public BaseSQLPage(String pageName) { super(pageName); } public boolean performFinish() { - try { - Bookmark bookmark = this.adapter.getBookmark(); - bookmark.addQuery(getQueryText()); - ViewHelper.tryGetResults(getShell(), bookmark.getConnection(), getQueryText()); - } catch (ConnectionException e) { - e.printStackTrace(); - } - return true; - } + Bookmark bookmark = this.results.getBookmark(); + try { + bookmark.addQuery(getQueryText()); + SQLResults sqlResults = MultiSQLServer.getInstance().execute(bookmark, + this.connectionUtil.getConnection(bookmark, getShell()), getQueryText()); + return sqlResults == null ? false : true; + } catch (SQLException e) { + SQLExceptionDialog.openException(getShell(), bookmark, e); + return false; + } + } + protected abstract String getQueryText(); protected void appendColumn(StringBuffer whereClause, Entity entity, String columnName, DatabaseAdapter adapter, String value) { - - if (adapter != null && entity != null && entity.getColumn(columnName) != null) { - Column column = entity.getColumn(columnName); + + if (adapter != null && entity != null && getColumn(entity, columnName) != null) { + Column column = getColumn(entity, columnName); whereClause.append(adapter.quote(value, column.getType(), column.getTypeName())); } else { whereClause.append(value); } } - public void init(TableRow row, TableAdapter adapter) { - this.row = row; - this.adapter = adapter; + /** + * @param entity + * @param columnName + * @return + * @throws NotConnectedException + * @throws SQLException + */ + protected Column getColumn(Entity entity, String columnName) { + try { + return entity == null ? null : entity.getColumn(columnName); + } catch (NotConnectedException e) { + return null; + } catch (SQLException e) { + return null; + } + } + public void init(SQLResultSetResults results, SQLResultSetResults.Row row) { + this.results = results; + this.row = row; } }