home *** CD-ROM | disk | FTP | other *** search
Wrap
package sun.jdbc.odbc; import java.sql.DatabaseMetaData; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.SQLWarning; import java.sql.Statement; public class JdbcOdbcDatabaseMetaData extends JdbcOdbcObject implements DatabaseMetaData { protected JdbcOdbc OdbcApi; protected JdbcOdbcConnectionInterface Con; protected int hDbc; public JdbcOdbcDatabaseMetaData(JdbcOdbc var1, JdbcOdbcConnectionInterface var2) { this.OdbcApi = var1; this.Con = var2; this.hDbc = this.Con.getHDBC(); } public boolean allProceduresAreCallable() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.allProceduresAreCallable"); } return this.getInfoBooleanString((short)20); } public boolean allTablesAreSelectable() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.allTablesAreSelectable"); } return this.getInfoBooleanString((short)19); } public String getURL() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getURL"); } return this.Con.getURL(); } public String getUserName() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getUserName"); } return this.getInfoString((short)47); } public boolean isReadOnly() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.isReadOnly"); } return this.getInfoBooleanString((short)25); } public boolean nullsAreSortedHigh() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.nullsAreSortedHigh"); } int var1 = this.getInfoShort((short)85); return var1 == 0; } public boolean nullsAreSortedLow() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.nullsAreSortedLow"); } int var1 = this.getInfo((short)85); return var1 == 1; } public boolean nullsAreSortedAtStart() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.nullsAreSortedAtStart"); } int var1 = this.getInfo((short)85); return var1 == 2; } public boolean nullsAreSortedAtEnd() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.nullsAreSortedAtEnd"); } int var1 = this.getInfo((short)85); return var1 == 4; } public String getDatabaseProductName() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getDatabaseProductName"); } return this.getInfoString((short)17); } public String getDatabaseProductVersion() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getDatabaseProductVersion"); } return this.getInfoString((short)18); } public String getDriverName() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getDriverName"); } return "JDBC-ODBC Bridge (" + this.getInfoString((short)6) + ")"; } public String getDriverVersion() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getDriverVersion"); } int var1 = this.getDriverMinorVersion(); String var2 = ""; if (var1 < 1000) { var2 = var2 + "0"; } if (var1 < 100) { var2 = var2 + "0"; } if (var1 < 10) { var2 = var2 + "0"; } var2 = var2 + "" + var1; return this.getDriverMajorVersion() + "." + var2 + " (" + this.getInfoString((short)7) + ")"; } public int getDriverMajorVersion() { return 1; } public int getDriverMinorVersion() { return 1001; } public boolean usesLocalFiles() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.usesLocalFiles"); } int var1 = this.getInfoShort((short)84); return var1 == 2; } public boolean usesLocalFilePerTable() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.usesLocalFilePerTable"); } int var1 = this.getInfoShort((short)84); return var1 == 1; } public boolean supportsMixedCaseIdentifiers() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsMixedCaseIdentifiers"); } int var1 = this.getInfoShort((short)28); return var1 == 4 || var1 == 1 || var1 == 2; } public boolean storesUpperCaseIdentifiers() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.storesUpperCaseIdentifiers"); } int var1 = this.getInfoShort((short)28); return var1 == 1; } public boolean storesLowerCaseIdentifiers() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.storesLowerCaseIdentifiers"); } int var1 = this.getInfoShort((short)28); return var1 == 2; } public boolean storesMixedCaseIdentifiers() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.storesMixedCaseIdentifiers"); } int var1 = this.getInfoShort((short)28); return var1 == 4; } public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsMixedCaseQuotedIdentifiers"); } int var1 = this.getInfoShort((short)93); return var1 == 4 || var1 == 1 || var1 == 2; } public boolean storesUpperCaseQuotedIdentifiers() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.storesUpperCaseQuotedIdentifiers"); } int var1 = this.getInfoShort((short)93); return var1 == 1; } public boolean storesLowerCaseQuotedIdentifiers() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.storesLowerCaseQuotedIdentifiers"); } int var1 = this.getInfoShort((short)93); return var1 == 2; } public boolean storesMixedCaseQuotedIdentifiers() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.storesMixedCaseQuotedIdentifiers"); } int var1 = this.getInfoShort((short)93); return var1 == 4; } public String getIdentifierQuoteString() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getIdentifierQuoteString"); } return this.getInfoString((short)29); } public String getSQLKeywords() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getSQLKeywords"); } return this.getInfoString((short)89, JdbcOdbcLimits.MAX_GET_DATA_LENGTH); } public String getNumericFunctions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getNumericFunctions"); } String var2 = ""; int var1 = this.getInfo((short)49); if ((var1 & 1) != 0) { var2 = var2 + "ABS,"; } if ((var1 & 2) != 0) { var2 = var2 + "ACOS,"; } if ((var1 & 4) != 0) { var2 = var2 + "ASIN,"; } if ((var1 & 8) != 0) { var2 = var2 + "ATAN,"; } if ((var1 & 16) != 0) { var2 = var2 + "ATAN2,"; } if ((var1 & 32) != 0) { var2 = var2 + "CEILING,"; } if ((var1 & 64) != 0) { var2 = var2 + "COS,"; } if ((var1 & 128) != 0) { var2 = var2 + "COT,"; } if ((var1 & 262144) != 0) { var2 = var2 + "DEGREES,"; } if ((var1 & 256) != 0) { var2 = var2 + "EXP,"; } if ((var1 & 512) != 0) { var2 = var2 + "FLOOR,"; } if ((var1 & 1024) != 0) { var2 = var2 + "LOG,"; } if ((var1 & 524288) != 0) { var2 = var2 + "LOG10,"; } if ((var1 & 2048) != 0) { var2 = var2 + "MOD,"; } if ((var1 & 65536) != 0) { var2 = var2 + "PI,"; } if ((var1 & 1048576) != 0) { var2 = var2 + "POWER,"; } if ((var1 & 2097152) != 0) { var2 = var2 + "RADIANS,"; } if ((var1 & 131072) != 0) { var2 = var2 + "RAND,"; } if ((var1 & 4194304) != 0) { var2 = var2 + "ROUND,"; } if ((var1 & 4096) != 0) { var2 = var2 + "SIGN,"; } if ((var1 & 8192) != 0) { var2 = var2 + "SIN,"; } if ((var1 & 16384) != 0) { var2 = var2 + "SQRT,"; } if ((var1 & 'ΦÇÇ') != 0) { var2 = var2 + "TAN,"; } if ((var1 & 8388608) != 0) { var2 = var2 + "TRUNCATE,"; } if (var2.length() > 0) { var2 = var2.substring(0, var2.length() - 1); } return var2; } public String getStringFunctions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getStringFunctions"); } String var2 = ""; int var1 = this.getInfo((short)50); if ((var1 & 8192) != 0) { var2 = var2 + "ASCII,"; } if ((var1 & 16384) != 0) { var2 = var2 + "CHAR,"; } if ((var1 & 1) != 0) { var2 = var2 + "CONCAT,"; } if ((var1 & 'ΦÇÇ') != 0) { var2 = var2 + "DIFFERENCE,"; } if ((var1 & 2) != 0) { var2 = var2 + "INSERT,"; } if ((var1 & 64) != 0) { var2 = var2 + "LCASE,"; } if ((var1 & 4) != 0) { var2 = var2 + "LEFT,"; } if ((var1 & 16) != 0) { var2 = var2 + "LENGTH,"; } if ((var1 & 32) != 0) { var2 = var2 + "LOCATE,"; } if ((var1 & 65536) != 0) { var2 = var2 + "LOCATE_2,"; } if ((var1 & 8) != 0) { var2 = var2 + "LTRIM,"; } if ((var1 & 128) != 0) { var2 = var2 + "REPEAT,"; } if ((var1 & 256) != 0) { var2 = var2 + "REPLACE,"; } if ((var1 & 512) != 0) { var2 = var2 + "RIGHT,"; } if ((var1 & 1024) != 0) { var2 = var2 + "RTRIM,"; } if ((var1 & 131072) != 0) { var2 = var2 + "SOUNDEX,"; } if ((var1 & 262144) != 0) { var2 = var2 + "SPACE,"; } if ((var1 & 2048) != 0) { var2 = var2 + "SUBSTRING,"; } if ((var1 & 4096) != 0) { var2 = var2 + "UCASE,"; } if (var2.length() > 0) { var2 = var2.substring(0, var2.length() - 1); } return var2; } public String getSystemFunctions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getSystemFunctions"); } String var2 = ""; int var1 = this.getInfo((short)51); if ((var1 & 2) != 0) { var2 = var2 + "DBNAME,"; } if ((var1 & 4) != 0) { var2 = var2 + "IFNULL,"; } if ((var1 & 1) != 0) { var2 = var2 + "USERNAME,"; } if (var2.length() > 0) { var2 = var2.substring(0, var2.length() - 1); } return var2; } public String getTimeDateFunctions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getTimeDateFunctions"); } String var2 = ""; int var1 = this.getInfo((short)52); if ((var1 & 2) != 0) { var2 = var2 + "CURDATE,"; } if ((var1 & 512) != 0) { var2 = var2 + "CURTIME,"; } if ((var1 & 'ΦÇÇ') != 0) { var2 = var2 + "DAYNAME,"; } if ((var1 & 4) != 0) { var2 = var2 + "DAYOFMONTH,"; } if ((var1 & 8) != 0) { var2 = var2 + "DAYOFWEEK,"; } if ((var1 & 16) != 0) { var2 = var2 + "DAYOFYEAR,"; } if ((var1 & 1024) != 0) { var2 = var2 + "HOUR,"; } if ((var1 & 2048) != 0) { var2 = var2 + "MINUTE,"; } if ((var1 & 32) != 0) { var2 = var2 + "MONTH,"; } if ((var1 & 65536) != 0) { var2 = var2 + "MONTHNAME,"; } if ((var1 & 1) != 0) { var2 = var2 + "NOW,"; } if ((var1 & 64) != 0) { var2 = var2 + "QUARTER,"; } if ((var1 & 4096) != 0) { var2 = var2 + "SECOND,"; } if ((var1 & 8192) != 0) { var2 = var2 + "TIMESTAMPADD,"; } if ((var1 & 16384) != 0) { var2 = var2 + "TIMESTAMPDIFF,"; } if ((var1 & 128) != 0) { var2 = var2 + "WEEK,"; } if ((var1 & 256) != 0) { var2 = var2 + "YEAR,"; } if (var2.length() > 0) { var2 = var2.substring(0, var2.length() - 1); } return var2; } public String getSearchStringEscape() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getSearchStringEscape"); } return this.getInfoString((short)14); } public String getExtraNameCharacters() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getExtraNameCharacters"); } return this.getInfoString((short)94); } public boolean supportsAlterTableWithAddColumn() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsAlterTableWithAddColumn"); } int var1 = this.getInfo((short)86); return (var1 & 1) > 0; } public boolean supportsAlterTableWithDropColumn() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsAlterTableWithDropColumn"); } int var1 = this.getInfo((short)86); return (var1 & 2) > 0; } public boolean supportsColumnAliasing() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsColumnAliasing"); } return this.getInfoBooleanString((short)87); } public boolean nullPlusNonNullIsNull() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.nullPlusNullIsNull"); } int var1 = this.getInfoShort((short)22); return var1 == 0; } public boolean supportsConvert() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsConvert"); } int var1 = this.getInfo((short)48); return var1 == 1; } public boolean supportsConvert(int var1, int var2) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsConvert (" + var1 + "," + var2 + ")"); } byte var3 = 0; int var4 = 0; switch (var1) { case -7: var3 = 55; break; case -6: var3 = 68; break; case -5: var3 = 53; break; case -4: var3 = 71; break; case -3: var3 = 69; break; case -2: var3 = 54; break; case -1: var3 = 62; break; case 1: var3 = 56; break; case 2: var3 = 63; break; case 3: var3 = 58; break; case 4: var3 = 61; break; case 5: var3 = 65; break; case 6: var3 = 60; break; case 7: var3 = 64; break; case 8: var3 = 59; break; case 12: var3 = 70; break; case 91: var3 = 57; break; case 92: var3 = 66; break; case 93: var3 = 67; } int var5 = this.getInfo(var3); switch (var2) { case -7: var4 = 4096; break; case -6: var4 = 8192; break; case -5: var4 = 16384; break; case -4: var4 = 262144; break; case -3: var4 = 2048; break; case -2: var4 = 1024; break; case -1: var4 = 512; break; case 1: var4 = 1; break; case 2: var4 = 2; break; case 3: var4 = 4; break; case 4: var4 = 8; break; case 5: var4 = 16; break; case 6: var4 = 32; break; case 7: var4 = 64; break; case 8: var4 = 128; break; case 12: var4 = 256; break; case 91: var4 = 32768; break; case 92: var4 = 65536; break; case 93: var4 = 131072; } return (var5 & var4) > 0; } public boolean supportsTableCorrelationNames() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsTableCorrelationNames"); } int var1 = this.getInfoShort((short)74); return var1 == 1 || var1 == 2; } public boolean supportsDifferentTableCorrelationNames() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsDifferentTableCorrelationNames"); } int var1 = this.getInfoShort((short)74); return var1 == 1; } public boolean supportsExpressionsInOrderBy() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsExpressionsInOrderBy"); } return this.getInfoBooleanString((short)27); } public boolean supportsOrderByUnrelated() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsOrderByUnrelated"); } return this.getInfoBooleanString((short)90); } public boolean supportsGroupBy() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsGroupBy"); } int var1 = this.getInfoShort((short)88); return var1 != 0; } public boolean supportsGroupByUnrelated() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsGroupByUnrelated"); } int var1 = this.getInfoShort((short)88); return var1 == 3; } public boolean supportsGroupByBeyondSelect() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsGroupByBeyondSelect"); } int var1 = this.getInfoShort((short)88); return var1 == 2; } public boolean supportsLikeEscapeClause() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsLikeEscapeClause"); } return this.getInfoBooleanString((short)113); } public boolean supportsMultipleResultSets() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsMultipleResultSets"); } return this.getInfoBooleanString((short)36); } public boolean supportsMultipleTransactions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsMultipleTransactions"); } return this.getInfoBooleanString((short)37); } public boolean supportsNonNullableColumns() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsNonNullableColumns"); } int var1 = this.getInfoShort((short)75); return var1 == 1; } public boolean supportsMinimumSQLGrammar() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsMinimumSQLGrammar"); } int var1 = this.getInfoShort((short)15); return var1 == 0 || var1 == 1 || var1 == 2; } public boolean supportsCoreSQLGrammar() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsCoreSQLGrammar"); } int var1 = this.getInfoShort((short)15); return var1 == 1 || var1 == 2; } public boolean supportsANSI92EntryLevelSQL() throws SQLException { return true; } public boolean supportsANSI92IntermediateSQL() throws SQLException { return false; } public boolean supportsANSI92FullSQL() throws SQLException { return false; } public boolean supportsExtendedSQLGrammar() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsExtendedSQLGrammar"); } int var1 = this.getInfoShort((short)15); return var1 == 2; } public boolean supportsIntegrityEnhancementFacility() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsIntegrityEnhancementFacility"); } return this.getInfoBooleanString((short)73); } public boolean supportsOuterJoins() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsOuterJoins"); } String var1 = this.getInfoString((short)38); return !var1.equalsIgnoreCase("N"); } public boolean supportsFullOuterJoins() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsFullOuterJoins"); } String var1 = this.getInfoString((short)38); return var1.equalsIgnoreCase("F"); } public boolean supportsLimitedOuterJoins() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsLimitedOuterJoins"); } String var1 = this.getInfoString((short)38); return var1.equalsIgnoreCase("P"); } public String getSchemaTerm() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getSchemaTerm"); } return this.getInfoString((short)39); } public String getProcedureTerm() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getProcedureTerm"); } return this.getInfoString((short)40); } public String getCatalogTerm() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getCatalogTerm"); } return this.getInfoString((short)42); } public boolean isCatalogAtStart() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.isCatalogAtStart"); } int var1 = this.getInfoShort((short)114); return var1 == 1; } public String getCatalogSeparator() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getCatalogSeparator"); } return this.getInfoString((short)41); } public boolean supportsSchemasInDataManipulation() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsSchemasInDataManipulation"); } int var1 = this.getInfo((short)91); return (var1 & 1) > 0; } public boolean supportsSchemasInProcedureCalls() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsSchemasInProcedureCalls"); } int var1 = this.getInfo((short)91); return (var1 & 2) > 0; } public boolean supportsSchemasInTableDefinitions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsSchemasInTableDefinitions"); } int var1 = this.getInfo((short)91); return (var1 & 4) > 0; } public boolean supportsSchemasInIndexDefinitions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsSchemasInIndexDefintions"); } int var1 = this.getInfo((short)91); return (var1 & 8) > 0; } public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsSchemasInPrivilegeDefintions"); } int var1 = this.getInfo((short)91); return (var1 & 16) > 0; } public boolean supportsCatalogsInDataManipulation() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsCatalogsInDataManipulation"); } int var1 = this.getInfo((short)92); return (var1 & 1) > 0; } public boolean supportsCatalogsInProcedureCalls() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsCatalogsInProcedureCalls"); } int var1 = this.getInfo((short)92); return (var1 & 2) > 0; } public boolean supportsCatalogsInTableDefinitions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsCatalogsInTableDefinitions"); } int var1 = this.getInfo((short)92); return (var1 & 4) > 0; } public boolean supportsCatalogsInIndexDefinitions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsCatalogsInIndexDefinitions"); } int var1 = this.getInfo((short)92); return (var1 & 8) > 0; } public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsCatalogsInPrivilegeDefintions"); } int var1 = this.getInfo((short)92); return (var1 & 16) > 0; } public boolean supportsPositionedDelete() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsPositionedDelete"); } int var1 = this.getInfo((short)80); return (var1 & 1) > 0; } public boolean supportsPositionedUpdate() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsPositionedUpdate"); } int var1 = this.getInfo((short)80); return (var1 & 2) > 0; } public boolean supportsSelectForUpdate() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsSelectForUpdate"); } int var1 = this.getInfo((short)80); return (var1 & 4) > 0; } public boolean supportsStoredProcedures() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsStoredProcedures"); } return this.getInfoBooleanString((short)21); } public boolean supportsSubqueriesInComparisons() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsSubqueriesInComparisions"); } int var1 = this.getInfo((short)95); return (var1 & 1) > 0; } public boolean supportsSubqueriesInExists() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsSubqueriesInExists"); } int var1 = this.getInfo((short)95); return (var1 & 2) > 0; } public boolean supportsSubqueriesInIns() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsSubqueriesInIns"); } int var1 = this.getInfo((short)95); return (var1 & 4) > 0; } public boolean supportsSubqueriesInQuantifieds() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsSubqueriesInQuantifieds"); } int var1 = this.getInfo((short)95); return (var1 & 8) > 0; } public boolean supportsCorrelatedSubqueries() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsCorrelatedSubqueries"); } int var1 = this.getInfo((short)95); return (var1 & 16) > 0; } public boolean supportsUnion() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsUnion"); } int var1 = this.getInfo((short)96); return (var1 & 1) > 0; } public boolean supportsUnionAll() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsUnionAll"); } int var1 = this.getInfo((short)96); return (var1 & 2) > 0; } public boolean supportsOpenCursorsAcrossCommit() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsOpenCursorsAcrossCommit"); } int var1 = this.getInfoShort((short)23); return var1 == 2; } public boolean supportsOpenCursorsAcrossRollback() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsOpenCursorsAcrossRollback"); } int var1 = this.getInfoShort((short)24); return var1 == 2; } public boolean supportsOpenStatementsAcrossCommit() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsOpenStatementsAcrossCommit"); } int var1 = this.getInfoShort((short)23); return var1 == 2 || var1 == 1; } public boolean supportsOpenStatementsAcrossRollback() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsOpenStatementsAcrossRollback"); } int var1 = this.getInfoShort((short)24); return var1 == 2 || var1 == 1; } public int getMaxBinaryLiteralLength() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxBinaryLiteralLength"); } return this.getInfo((short)112); } public int getMaxCharLiteralLength() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxCharLiteralLength"); } return this.getInfo((short)108); } public int getMaxColumnNameLength() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxColumnNameLength"); } return this.getInfoShort((short)30); } public int getMaxColumnsInGroupBy() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxColumnsInGroupBy"); } return this.getInfoShort((short)97); } public int getMaxColumnsInIndex() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxColumnsInIndex"); } return this.getInfoShort((short)98); } public int getMaxColumnsInOrderBy() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxColumnsInOrderBy"); } return this.getInfoShort((short)99); } public int getMaxColumnsInSelect() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxColumnsInSeleted"); } return this.getInfoShort((short)100); } public int getMaxColumnsInTable() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxColumnsInTable"); } return this.getInfoShort((short)101); } public int getMaxConnections() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxConnections"); } return this.getInfoShort((short)0); } public int getMaxCursorNameLength() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxCursorNameLength"); } return this.getInfo((short)31); } public int getMaxIndexLength() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxIndexLength"); } return this.getInfo((short)102); } public int getMaxSchemaNameLength() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxSchemaNameLength"); } return this.getInfoShort((short)32); } public int getMaxProcedureNameLength() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxProcedureNameLength"); } return this.getInfoShort((short)33); } public int getMaxCatalogNameLength() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxCatalogNameLength"); } return this.getInfoShort((short)34); } public int getMaxRowSize() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxRowSize"); } return this.getInfo((short)104); } public boolean doesMaxRowSizeIncludeBlobs() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.doesMaxRowSizeIncludeBlobs"); } return this.getInfoBooleanString((short)103); } public int getMaxStatementLength() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxStatementLength"); } return this.getInfo((short)105); } public int getMaxStatements() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxStatements"); } return this.getInfoShort((short)1); } public int getMaxTableNameLength() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxTableNameLength"); } return this.getInfoShort((short)35); } public int getMaxTablesInSelect() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxTablesInSelect"); } return this.getInfoShort((short)106); } public int getMaxUserNameLength() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getMaxUserNameLength"); } return this.getInfoShort((short)107); } public int getDefaultTransactionIsolation() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getDefaultTransactionIsolation"); } int var1 = this.getInfo((short)26); byte var2 = 0; switch (var1) { case 1: var2 = 1; break; case 2: var2 = 2; break; case 4: var2 = 4; break; case 8: var2 = 8; } return var2; } public boolean supportsTransactions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsTransactions"); } int var1 = this.getInfoShort((short)46); return var1 != 0; } public boolean supportsTransactionIsolationLevel(int var1) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsTransactionIsolationLevel (" + var1 + ")"); } if (var1 == 0) { return !this.supportsTransactions(); } else { int var2 = this.getInfo((short)72); boolean var3 = false; switch (var1) { case 1: var3 = (var2 & 1) > 0; break; case 2: var3 = (var2 & 2) > 0; break; case 4: var3 = (var2 & 4) > 0; break; case 8: var3 = (var2 & 8) > 0; } return var3; } } public boolean supportsDataDefinitionAndDataManipulationTransactions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsDataDefinitionAndDataManipulationTransactions"); } int var1 = this.getInfoShort((short)46); return (var1 & 2) > 0; } public boolean supportsDataManipulationTransactionsOnly() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsDataManipulationTransactionsOnly"); } int var1 = this.getInfoShort((short)46); return (var1 & 1) > 0; } public boolean dataDefinitionCausesTransactionCommit() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.dataDefintionCausesTransactionCommit"); } int var1 = this.getInfoShort((short)46); return (var1 & 3) > 0; } public boolean dataDefinitionIgnoredInTransactions() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.dataDefintionIgnoredInTransactions"); } int var1 = this.getInfoShort((short)46); return (var1 & 4) > 0; } public ResultSet getProcedures(String var1, String var2, String var3) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getProcedures (" + var1 + "," + var2 + "," + var3 + ")"); } Object var5 = null; SQLWarning var6 = null; int var4 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLProcedures(var4, var1, var2, var3); } catch (SQLWarning var8) { var6 = var8; } catch (SQLException var9) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var9; } JdbcOdbcResultSet var10 = new JdbcOdbcResultSet(); var10.initialize(this.OdbcApi, this.hDbc, var4, false, (Statement)null); var10.setWarning(var6); return var10; } public ResultSet getProcedureColumns(String var1, String var2, String var3, String var4) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getProcedureColumns (" + var1 + "," + var2 + "," + var3 + "," + var4 + ")"); } Object var6 = null; SQLWarning var7 = null; int var5 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLProcedureColumns(var5, var1, var2, var3, var4); } catch (SQLWarning var9) { var7 = var9; } catch (SQLException var10) { this.OdbcApi.SQLFreeStmt(var5, 1); throw var10; } JdbcOdbcResultSet var11 = new JdbcOdbcResultSet(); var11.initialize(this.OdbcApi, this.hDbc, var5, false, (Statement)null); var11.setWarning(var7); if (this.Con.getODBCVer() == 2) { var11.setSQLTypeColumn(6); } return var11; } public ResultSet getTables(String var1, String var2, String var3, String[] var4) throws SQLException { Object var6 = null; String var7 = null; SQLWarning var8 = null; if (var4 != null) { var7 = ""; boolean var9 = false; for(short var14 = 0; var14 < var4.length; ++var14) { String var10 = var4[var14]; if (var14 > 0) { var7 = var7 + ","; } var7 = var7 + var10; } } if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getTables (" + var1 + "," + var2 + "," + var3 + "," + var7 + ")"); } int var5 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLTables(var5, var1, var2, var3, var7); } catch (SQLWarning var11) { var8 = var11; } catch (SQLException var12) { this.OdbcApi.SQLFreeStmt(var5, 1); throw var12; } JdbcOdbcResultSet var13 = new JdbcOdbcResultSet(); var13.initialize(this.OdbcApi, this.hDbc, var5, false, (Statement)null); var13.setWarning(var8); return var13; } public ResultSet getSchemas() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getSchemas"); } JdbcOdbcResultSet var1 = (JdbcOdbcResultSet)this.getTables("", "%", "", (String[])null); int[] var2 = new int[]{2}; var1.setColumnMappings(var2); return var1; } public ResultSet getCatalogs() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getCatalogs"); } JdbcOdbcResultSet var1 = (JdbcOdbcResultSet)this.getTables("%", "", "", (String[])null); int[] var2 = new int[]{1}; var1.setColumnMappings(var2); return var1; } public ResultSet getTableTypes() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getTableTypes"); } String[] var1 = new String[]{"%"}; JdbcOdbcResultSet var2 = (JdbcOdbcResultSet)this.getTables("", "", "", var1); int[] var3 = new int[]{4}; var2.setColumnMappings(var3); return var2; } public ResultSet getColumns(String var1, String var2, String var3, String var4) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getColumns (" + var1 + "," + var2 + "," + var3 + "," + var4 + ")"); } Object var6 = null; SQLWarning var7 = null; int var5 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLColumns(var5, var1, var2, var3, var4); } catch (SQLWarning var9) { var7 = var9; } catch (SQLException var10) { this.OdbcApi.SQLFreeStmt(var5, 1); throw var10; } JdbcOdbcResultSet var11 = new JdbcOdbcResultSet(); var11.initialize(this.OdbcApi, this.hDbc, var5, false, (Statement)null); var11.setWarning(var7); if (this.Con.getODBCVer() == 2) { JdbcOdbcPseudoCol[] var8 = new JdbcOdbcPseudoCol[]{new JdbcOdbcPseudoCol("COLUMN_DEF", 12, 254), new JdbcOdbcPseudoCol("SQL_DATA_TYPE", 5, 0), new JdbcOdbcPseudoCol("SQL_DATETIME_SUB", 5, 0), new JdbcOdbcPseudoCol("CHAR_OCTET_LENGTH", 4, 0), new JdbcOdbcPseudoCol("ORDINAL_POSITION", 4, 0), new JdbcOdbcPseudoCol("IS_NULLABLE", 12, 254)}; var11.setPseudoCols(13, 18, var8); var11.setSQLTypeColumn(5); } return var11; } public ResultSet getColumnPrivileges(String var1, String var2, String var3, String var4) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getColumnPrivileges (" + var1 + "," + var2 + "," + var3 + "," + var4 + ")"); } Object var6 = null; SQLWarning var7 = null; int var5 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLColumnPrivileges(var5, var1, var2, var3, var4); } catch (SQLWarning var9) { var7 = var9; } catch (SQLException var10) { this.OdbcApi.SQLFreeStmt(var5, 1); throw var10; } JdbcOdbcResultSet var11 = new JdbcOdbcResultSet(); var11.initialize(this.OdbcApi, this.hDbc, var5, false, (Statement)null); var11.setWarning(var7); return var11; } public ResultSet getTablePrivileges(String var1, String var2, String var3) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getTablePrivileges (" + var1 + "," + var2 + "," + var3 + ")"); } Object var5 = null; SQLWarning var6 = null; int var4 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLTablePrivileges(var4, var1, var2, var3); } catch (SQLWarning var8) { var6 = var8; } catch (SQLException var9) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var9; } JdbcOdbcResultSet var10 = new JdbcOdbcResultSet(); var10.initialize(this.OdbcApi, this.hDbc, var4, false, (Statement)null); var10.setWarning(var6); return var10; } public ResultSet getBestRowIdentifier(String var1, String var2, String var3, int var4, boolean var5) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getBestRowIdentifier (" + var1 + "," + var2 + "," + var3 + "," + var4 + "," + var5 + ")"); } Object var7 = null; SQLWarning var8 = null; int var6 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLSpecialColumns(var6, (short)1, var1, var2, var3, var4, var5); } catch (SQLWarning var10) { var8 = var10; } catch (SQLException var11) { this.OdbcApi.SQLFreeStmt(var6, 1); throw var11; } JdbcOdbcResultSet var12 = new JdbcOdbcResultSet(); var12.initialize(this.OdbcApi, this.hDbc, var6, false, (Statement)null); var12.setWarning(var8); if (this.Con.getODBCVer() == 2) { var12.setSQLTypeColumn(3); } return var12; } public ResultSet getVersionColumns(String var1, String var2, String var3) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getVersionColumns (" + var1 + "," + var2 + "," + var3 + ")"); } Object var5 = null; SQLWarning var6 = null; int var4 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLSpecialColumns(var4, (short)2, var1, var2, var3, 0, false); } catch (SQLWarning var8) { var6 = var8; } catch (SQLException var9) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var9; } JdbcOdbcResultSet var10 = new JdbcOdbcResultSet(); var10.initialize(this.OdbcApi, this.hDbc, var4, false, (Statement)null); var10.setWarning(var6); if (this.Con.getODBCVer() == 2) { var10.setSQLTypeColumn(3); } return var10; } public ResultSet getPrimaryKeys(String var1, String var2, String var3) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getPrimaryKeys (" + var1 + "," + var2 + "," + var3 + ")"); } Object var5 = null; SQLWarning var6 = null; int var4 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLPrimaryKeys(var4, var1, var2, var3); } catch (SQLWarning var8) { var6 = var8; } catch (SQLException var9) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var9; } JdbcOdbcResultSet var10 = new JdbcOdbcResultSet(); var10.initialize(this.OdbcApi, this.hDbc, var4, false, (Statement)null); var10.setWarning(var6); return var10; } public ResultSet getImportedKeys(String var1, String var2, String var3) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getImportedKeys (" + var1 + "," + var2 + "," + var3 + ")"); } Object var5 = null; SQLWarning var6 = null; int var4 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLForeignKeys(var4, (String)null, (String)null, (String)null, var1, var2, var3); } catch (SQLWarning var8) { var6 = var8; } catch (SQLException var9) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var9; } JdbcOdbcResultSet var10 = new JdbcOdbcResultSet(); var10.initialize(this.OdbcApi, this.hDbc, var4, false, (Statement)null); var10.setWarning(var6); if (this.Con.getODBCVer() == 2) { JdbcOdbcPseudoCol[] var7 = new JdbcOdbcPseudoCol[]{new JdbcOdbcPseudoCol("DEFERRABILITY", 5, 0)}; var10.setPseudoCols(14, 14, var7); } return var10; } public ResultSet getExportedKeys(String var1, String var2, String var3) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getExportedKeys (" + var1 + "," + var2 + "," + var3 + ")"); } Object var5 = null; SQLWarning var6 = null; int var4 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLForeignKeys(var4, var1, var2, var3, (String)null, (String)null, (String)null); } catch (SQLWarning var8) { var6 = var8; } catch (SQLException var9) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var9; } JdbcOdbcResultSet var10 = new JdbcOdbcResultSet(); var10.initialize(this.OdbcApi, this.hDbc, var4, false, (Statement)null); var10.setWarning(var6); if (this.Con.getODBCVer() == 2) { JdbcOdbcPseudoCol[] var7 = new JdbcOdbcPseudoCol[]{new JdbcOdbcPseudoCol("DEFERRABILITY", 5, 0)}; var10.setPseudoCols(14, 14, var7); } return var10; } public ResultSet getCrossReference(String var1, String var2, String var3, String var4, String var5, String var6) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getCrossReference (" + var1 + "," + var2 + "," + var3 + "," + var4 + "," + var5 + "," + var6 + ")"); } Object var8 = null; SQLWarning var9 = null; int var7 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLForeignKeys(var7, var1, var2, var3, var4, var5, var6); } catch (SQLWarning var11) { var9 = var11; } catch (SQLException var12) { this.OdbcApi.SQLFreeStmt(var7, 1); throw var12; } JdbcOdbcResultSet var13 = new JdbcOdbcResultSet(); var13.initialize(this.OdbcApi, this.hDbc, var7, false, (Statement)null); var13.setWarning(var9); if (this.Con.getODBCVer() == 2) { JdbcOdbcPseudoCol[] var10 = new JdbcOdbcPseudoCol[]{new JdbcOdbcPseudoCol("DEFERRABILITY", 5, 0)}; var13.setPseudoCols(14, 14, var10); } return var13; } public ResultSet getTypeInfo() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getTypeInfo"); } Object var2 = null; SQLWarning var3 = null; int var1 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLGetTypeInfo(var1, (short)0); } catch (SQLWarning var5) { var3 = var5; } catch (SQLException var6) { this.OdbcApi.SQLFreeStmt(var1, 1); throw var6; } JdbcOdbcResultSet var7 = new JdbcOdbcResultSet(); var7.initialize(this.OdbcApi, this.hDbc, var1, false, (Statement)null); var7.setWarning(var3); if (this.Con.getODBCVer() == 2) { JdbcOdbcPseudoCol[] var4 = new JdbcOdbcPseudoCol[]{new JdbcOdbcPseudoCol("SQL_DATA_TYPE", 5, 0), new JdbcOdbcPseudoCol("SQL_DATETIME_SUB", 5, 0), new JdbcOdbcPseudoCol("NUM_PREC_RADIX", 5, 0), null, null}; var7.setPseudoCols(16, 18, var4); var7.setSQLTypeColumn(2); } return var7; } public ResultSet getIndexInfo(String var1, String var2, String var3, boolean var4, boolean var5) throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.getIndexInfo (" + var1 + "," + var2 + "," + var3 + var4 + "," + var5 + ")"); } Object var7 = null; SQLWarning var8 = null; int var6 = this.OdbcApi.SQLAllocStmt(this.hDbc); try { this.OdbcApi.SQLStatistics(var6, var1, var2, var3, var4, var5); } catch (SQLWarning var10) { var8 = var10; } catch (SQLException var11) { this.OdbcApi.SQLFreeStmt(var6, 1); throw var11; } JdbcOdbcResultSet var12 = new JdbcOdbcResultSet(); var12.initialize(this.OdbcApi, this.hDbc, var6, false, (Statement)null); var12.setWarning(var8); return var12; } protected void validateConnection() throws SQLException { this.Con.validateConnection(); } protected int getInfo(short var1) throws SQLException { this.validateConnection(); return this.OdbcApi.SQLGetInfo(this.hDbc, var1); } protected int getInfoShort(short var1) throws SQLException { this.validateConnection(); return this.OdbcApi.SQLGetInfoShort(this.hDbc, var1); } protected boolean getInfoBooleanString(short var1) throws SQLException { this.validateConnection(); String var2 = this.OdbcApi.SQLGetInfoString(this.hDbc, var1); return var2.equalsIgnoreCase("Y"); } protected String getInfoString(short var1) throws SQLException { this.validateConnection(); return this.OdbcApi.SQLGetInfoString(this.hDbc, var1); } protected String getInfoString(short var1, int var2) throws SQLException { this.validateConnection(); return this.OdbcApi.SQLGetInfoString(this.hDbc, var1, var2); } }