X-Git-Url: http://secure.phpeclipse.com diff --git a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/sql/MultiSQLServer.java b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/sql/MultiSQLServer.java index f5eb590..1572da0 100644 --- a/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/sql/MultiSQLServer.java +++ b/archive/net.sourceforge.phpeclipse.quantum.sql/src/com/quantum/sql/MultiSQLServer.java @@ -9,12 +9,14 @@ import java.sql.Statement; import java.util.Properties; import com.quantum.Messages; +import com.quantum.adapters.AdapterFactory; import com.quantum.adapters.DatabaseAdapter; import com.quantum.model.Bookmark; import com.quantum.model.ConnectionException; import com.quantum.model.Entity; import com.quantum.model.JDBCDriver; import com.quantum.model.PasswordFinder; +import com.quantum.util.sql.SQLInstructionBuilder; import com.quantum.view.LogProxy; @@ -69,13 +71,9 @@ public class MultiSQLServer implements ConnectionEstablisher { } } - public void disconnect(Connection connection) throws ConnectionException { - try { - if (connection != null) { - connection.close(); - } - } catch (SQLException e) { - throw new ConnectionException(e); + public void disconnect(Connection connection) throws SQLException { + if (connection != null) { + connection.close(); } } @@ -119,11 +117,26 @@ public class MultiSQLServer implements ConnectionEstablisher { log.addText(LogProxy.QUERY, "Connecting to: " + bookmark.getName()); //$NON-NLS-1$ try { JDBCDriver jdbcDriver = bookmark.getJDBCDriver(); - Driver driver = jdbcDriver.getDriver(); + Driver driver = jdbcDriver.getDriver(); if (driver != null) { Properties props = new Properties(); props.put(USERNAME, bookmark.getUsername()); props.put(PASSWORD, password); + // TODO: This kind of things should really be made general-purpose + if (jdbcDriver.getType().equals(AdapterFactory.ORACLE)){ + // remarksReporting will make the JDBC driver return the remarks for the tables and + // the columns. It'll make getting the tables and columns much slower, so it should + // really be made into an option + // TODO: Make remark reporting into an option + props.put("remarksReporting", "true"); + // includeSynonyms will make the JDBC driver return the proper columns when querying + // about a synonym. If not given, synonyms will appear with no columns, exports of data + // containing synonyms will break, etc.n So it's needed from the moment you add the synonyms + // with the getSynonymsList() in the Database.getEntities() function. That could also be + // made into an option, but more logically when more databases are addedd + // TODO: Make including synonyms into an option + props.put("includeSynonyms", "true"); + } Connection connection = driver.connect(bookmark.getConnect(), props); if (connection == null) { @@ -138,7 +151,7 @@ public class MultiSQLServer implements ConnectionEstablisher { return connection; } else { throw new ConnectionException(Messages.getString( - ConnectionException.class, "couldNotInstaniateDriver", + ConnectionException.class, "couldNotInstantiateDriver", new Object[] { jdbcDriver.getClassName(), bookmark.getName() })); } } catch (SQLException e) { @@ -156,7 +169,7 @@ public class MultiSQLServer implements ConnectionEstablisher { } public SQLResultSetResults getMetaData(Entity entity, Connection connection) throws SQLException { - String query = "SELECT * FROM " + entity.getQuotedTableName() + " WHERE (1 = 0)"; //$NON-NLS-1$ //$NON-NLS-2$ + String query = SQLInstructionBuilder.buildSelectAllColumnsNoRows(entity); SQLResultSetResults results = null; if (connection != null) { Statement statement = connection.createStatement(); @@ -191,7 +204,7 @@ public class MultiSQLServer implements ConnectionEstablisher { long startTime = System.currentTimeMillis(); System.out.println("Executing"); //$NON-NLS-1$ LogProxy log = LogProxy.getInstance(); - log.addText(LogProxy.QUERY, "Executing Request [" + sql + "]"); //$NON-NLS-1$ //$NON-NLS-2$ + log.addText(LogProxy.QUERY, "SQL (" + bookmark.getName() + ") [" + sql + "]"); //$NON-NLS-1$ //$NON-NLS-2$ Statement statement = con.createStatement(); try { SQLResults results;