public void load(ISession session, PreparedStatement stmt) { ResultSet rs = null; try { rs = stmt.executeQuery(); StringBuffer buf = new StringBuffer(4096); while (rs.next()) { String line1 = rs.getString(1); String line2 = rs.getString(2); buf.append(line1.trim() + " "); buf.append(line2.trim() + " "); } String source = ""; if (buf.length() == 0 && sourceType == TABLE_TYPE) { ISQLDatabaseMetaData md = session.getMetaData(); // TODO: Need to define a better approach to getting dialects. // That is, we don't really want to ever prompt the user in this // case. It's always Oracle. Yet, we may have a new OracleDialect // at some point. HibernateDialect dialect = DialectFactory.getDialect("Oracle"); // TODO: How to let the user customize this?? CreateScriptPreferences prefs = new CreateScriptPreferences(); ITableInfo[] tabs = new ITableInfo[] {(ITableInfo) getDatabaseObjectInfo()}; List<ITableInfo> tables = Arrays.asList(tabs); // Handle table source List<String> sqls = dialect.getCreateTableSQL(tables, md, prefs, false); String sep = session.getQueryTokenizer().getSQLStatementSeparator(); for (String sql : sqls) { buf.append(sql); buf.append(sep); buf.append("\n"); } source = buf.toString(); } else { if (s_log.isDebugEnabled()) { s_log.debug("View source before formatting: " + buf.toString()); } source = formatter.reformat(buf.toString()); } getTextArea().setText(source); getTextArea().setCaretPosition(0); } catch (SQLException ex) { s_log.error("Unexpected exception: " + ex.getMessage(), ex); session.showErrorMessage(ex); } finally { SQLUtilities.closeResultSet(rs); } }
private String getExplainSql(String sql) { StringBuilder result = new StringBuilder(); IQueryTokenizer tokenizer = _session.getQueryTokenizer(); tokenizer.setScriptToTokenize(sql); while (tokenizer.hasQuery()) { String query = tokenizer.nextQuery(); result.append("BEGIN").append(tokenizer.getSQLStatementSeparator()); result.append(EXPLAIN_PREFIX).append(query).append(tokenizer.getSQLStatementSeparator()); result.append("ROLLBACK").append(tokenizer.getSQLStatementSeparator()); } if (s_log.isDebugEnabled()) { s_log.debug("getExplainSql - Input: " + sql); s_log.debug("getExplainSql - Querys: " + tokenizer.getQueryCount()); s_log.debug("getExplainSql - Result: " + result); } return result.toString(); }