home *** CD-ROM | disk | FTP | other *** search
Wrap
package sun.jdbc.odbc; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.SQLWarning; 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 2; } public int getDriverMinorVersion() { return 1; } 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 == 3; } 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 == 3; } 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 / 2); } 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; boolean var4 = false; int var5 = 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 var6 = this.getInfo(var3); switch (var2) { case -7: var5 = 4096; break; case -6: var5 = 8192; break; case -5: var5 = 16384; break; case -4: var5 = 262144; break; case -3: var5 = 2048; break; case -2: var5 = 1024; break; case -1: var5 = 512; break; case 1: var5 = 1; break; case 2: var5 = 2; break; case 3: var5 = 4; break; case 4: var5 = 8; break; case 5: var5 = 16; break; case 6: var5 = 32; break; case 7: var5 = 64; break; case 8: var5 = 128; break; case 12: var5 = 256; break; case 91: var5 = 32768; break; case 92: var5 = 65536; break; case 93: var5 = 131072; } return (var6 & var5) > 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; case 3: case 5: case 6: case 7: default: 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; case 3: case 5: case 6: case 7: default: 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 var9) { var6 = var9; } catch (SQLException var10) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var10; } JdbcOdbcResultSet var11 = new JdbcOdbcResultSet(); var11.initialize(this.OdbcApi, this.hDbc, var4, false, (JdbcOdbcStatement)null); var11.setWarning(var6); return var11; } 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 var10) { var7 = var10; } catch (SQLException var11) { this.OdbcApi.SQLFreeStmt(var5, 1); throw var11; } JdbcOdbcResultSet var12 = new JdbcOdbcResultSet(); var12.initialize(this.OdbcApi, this.hDbc, var5, false, (JdbcOdbcStatement)null); var12.setWarning(var7); if (this.Con.getODBCVer() >= 2) { var12.setSQLTypeColumn(6); var12.setAliasColumnName("PRECISION", 8); var12.setAliasColumnName("LENGTH", 9); var12.setAliasColumnName("SCALE", 10); var12.setAliasColumnName("RADIX", 11); } return var12; } 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, (JdbcOdbcStatement)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 var10) { var7 = var10; } catch (SQLException var11) { this.OdbcApi.SQLFreeStmt(var5, 1); throw var11; } JdbcOdbcResultSet var12 = new JdbcOdbcResultSet(); var12.initialize(this.OdbcApi, this.hDbc, var5, false, (JdbcOdbcStatement)null); var12.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)}; var12.setPseudoCols(13, 18, var8); var12.setSQLTypeColumn(5); } else if (this.Con.getODBCVer() >= 3) { var12.setSQLTypeColumn(5); var12.setAliasColumnName("SQL_DATETIME_SUB", 15); } return var12; } 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 var10) { var7 = var10; } catch (SQLException var11) { this.OdbcApi.SQLFreeStmt(var5, 1); throw var11; } JdbcOdbcResultSet var12 = new JdbcOdbcResultSet(); var12.initialize(this.OdbcApi, this.hDbc, var5, false, (JdbcOdbcStatement)null); var12.setWarning(var7); return var12; } 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 var9) { var6 = var9; } catch (SQLException var10) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var10; } JdbcOdbcResultSet var11 = new JdbcOdbcResultSet(); var11.initialize(this.OdbcApi, this.hDbc, var4, false, (JdbcOdbcStatement)null); var11.setWarning(var6); return var11; } 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 var11) { var8 = var11; } catch (SQLException var12) { this.OdbcApi.SQLFreeStmt(var6, 1); throw var12; } JdbcOdbcResultSet var13 = new JdbcOdbcResultSet(); var13.initialize(this.OdbcApi, this.hDbc, var6, false, (JdbcOdbcStatement)null); var13.setWarning(var8); if (this.Con.getODBCVer() >= 2) { var13.setSQLTypeColumn(3); } return var13; } 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 var9) { var6 = var9; } catch (SQLException var10) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var10; } JdbcOdbcResultSet var11 = new JdbcOdbcResultSet(); var11.initialize(this.OdbcApi, this.hDbc, var4, false, (JdbcOdbcStatement)null); var11.setWarning(var6); if (this.Con.getODBCVer() >= 2) { var11.setSQLTypeColumn(3); } return var11; } 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 var9) { var6 = var9; } catch (SQLException var10) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var10; } JdbcOdbcResultSet var11 = new JdbcOdbcResultSet(); var11.initialize(this.OdbcApi, this.hDbc, var4, false, (JdbcOdbcStatement)null); var11.setWarning(var6); return var11; } 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 var9) { var6 = var9; } catch (SQLException var10) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var10; } JdbcOdbcResultSet var11 = new JdbcOdbcResultSet(); var11.initialize(this.OdbcApi, this.hDbc, var4, false, (JdbcOdbcStatement)null); var11.setWarning(var6); if (this.Con.getODBCVer() == 2) { JdbcOdbcPseudoCol[] var7 = new JdbcOdbcPseudoCol[]{new JdbcOdbcPseudoCol("DEFERRABILITY", 5, 0)}; var11.setPseudoCols(14, 14, var7); } return var11; } 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 var9) { var6 = var9; } catch (SQLException var10) { this.OdbcApi.SQLFreeStmt(var4, 1); throw var10; } JdbcOdbcResultSet var11 = new JdbcOdbcResultSet(); var11.initialize(this.OdbcApi, this.hDbc, var4, false, (JdbcOdbcStatement)null); var11.setWarning(var6); if (this.Con.getODBCVer() == 2) { JdbcOdbcPseudoCol[] var7 = new JdbcOdbcPseudoCol[]{new JdbcOdbcPseudoCol("DEFERRABILITY", 5, 0)}; var11.setPseudoCols(14, 14, var7); } return var11; } 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 var12) { var9 = var12; } catch (SQLException var13) { this.OdbcApi.SQLFreeStmt(var7, 1); throw var13; } JdbcOdbcResultSet var14 = new JdbcOdbcResultSet(); var14.initialize(this.OdbcApi, this.hDbc, var7, false, (JdbcOdbcStatement)null); var14.setWarning(var9); if (this.Con.getODBCVer() == 2) { JdbcOdbcPseudoCol[] var10 = new JdbcOdbcPseudoCol[]{new JdbcOdbcPseudoCol("DEFERRABILITY", 5, 0)}; var14.setPseudoCols(14, 14, var10); } return var14; } public boolean supportsResultSetType(int var1) throws SQLException { short var2 = this.getConnectionSupportType(var1); switch (var1) { case 1003: return var2 == 0; case 1004: return var2 == 3 || var2 == 1; case 1005: if (var2 == 1) { int var3 = this.Con.getOdbcCursorAttr2(var2); if ((var3 & 64) != 0) { return true; } return false; } return var2 == 2; default: return false; } } public boolean supportsResultSetConcurrency(int var1, int var2) throws SQLException { if (this.supportsResultSetType(var1)) { short var3 = this.Con.getOdbcConcurrency(var2); switch (var2) { case 1007: return var3 == 1; case 1008: if (var1 != 1003) { return var3 == 2; } return false; default: return false; } } else { return false; } } public boolean ownUpdatesAreVisible(int var1) throws SQLException { return var1 != 1003 ? this.updatesAreDetected(var1) : false; } public boolean ownDeletesAreVisible(int var1) throws SQLException { return var1 != 1003 ? this.deletesAreDetected(var1) : false; } public boolean ownInsertsAreVisible(int var1) throws SQLException { return var1 != 1003 ? this.insertsAreDetected(var1) : false; } public boolean othersUpdatesAreVisible(int var1) throws SQLException { return var1 == 1005 ? this.updatesAreDetected(var1) : false; } public boolean othersDeletesAreVisible(int var1) throws SQLException { return var1 == 1005 ? this.deletesAreDetected(var1) : false; } public boolean othersInsertsAreVisible(int var1) throws SQLException { return var1 == 1005 ? this.insertsAreDetected(var1) : false; } public boolean updatesAreDetected(int var1) throws SQLException { short var2 = this.getCursorAttribute(var1); if (var2 > 0) { try { int var3 = this.OdbcApi.SQLGetInfo(this.hDbc, var2); return (var3 & 64) > 0; } catch (SQLException var4) { return false; } } else { return false; } } public boolean deletesAreDetected(int var1) throws SQLException { short var2 = this.getCursorAttribute(var1); if (var2 > 0) { try { int var3 = this.OdbcApi.SQLGetInfo(this.hDbc, var2); return (var3 & 32) > 0; } catch (SQLException var4) { return false; } } else { return false; } } public boolean insertsAreDetected(int var1) throws SQLException { short var2 = this.getCursorAttribute(var1); if (var2 > 0) { try { int var3 = this.OdbcApi.SQLGetInfo(this.hDbc, var2); return (var3 & 16) > 0; } catch (SQLException var4) { return false; } } else { return false; } } public boolean supportsBatchUpdates() throws SQLException { if (JdbcOdbcObject.isTracing()) { JdbcOdbcObject.trace("*DatabaseMetaData.supportsBatchUpdates"); } int var1 = 0; boolean var2 = false; boolean var3 = false; boolean var4 = false; try { var1 = this.OdbcApi.SQLGetInfo(this.hDbc, (short)121); if ((var1 & 2) > 0) { var2 = true; } var1 = this.OdbcApi.SQLGetInfo(this.hDbc, (short)153); if ((var1 & 1) > 0) { var4 = true; } } catch (SQLException var6) { var2 = false; var4 = false; } return var2 && var4 ? true : true; } public ResultSet getUDTs(String var1, String var2, String var3, int[] var4) throws SQLException { throw new UnsupportedOperationException(); } public Connection getConnection() throws SQLException { return this.Con != null && this.hDbc > 0 ? this.Con : null; } 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 var6) { var3 = var6; } catch (SQLException var7) { this.OdbcApi.SQLFreeStmt(var1, 1); throw var7; } JdbcOdbcResultSet var8 = new JdbcOdbcResultSet(); var8.initialize(this.OdbcApi, this.hDbc, var1, false, (JdbcOdbcStatement)null); var8.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}; var8.setPseudoCols(16, 18, var4); var8.setSQLTypeColumn(2); } else if (this.Con.getODBCVer() >= 3) { var8.setSQLTypeColumn(2); } if (this.Con.getODBCVer() >= 2) { var8.setAliasColumnName("PRECISION", 3); var8.setAliasColumnName("AUTO_INCREMENT", 12); } return var8; } 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 var11) { var8 = var11; } catch (SQLException var12) { this.OdbcApi.SQLFreeStmt(var6, 1); throw var12; } JdbcOdbcResultSet var13 = new JdbcOdbcResultSet(); var13.initialize(this.OdbcApi, this.hDbc, var6, false, (JdbcOdbcStatement)null); var13.setWarning(var8); return var13; } 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); } protected short getConnectionSupportType(int var1) throws SQLException { short var2 = this.Con.getOdbcCursorType(var1); if (var2 == -1) { var2 = this.Con.getBestOdbcCursorType(); } return var2; } protected short getCursorAttribute(int var1) throws SQLException { short var2 = 0; if (this.supportsResultSetType(var1)) { short var3 = this.getConnectionSupportType(var1); switch (var3) { case 1: var2 = 151; break; case 2: var2 = 145; break; case 3: var2 = 168; } return var2; } else { return var2; } } }