home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / sun / jdbc / odbc / JdbcOdbc.class (.txt) next >
Encoding:
Java Class File  |  1998-04-23  |  29.2 KB  |  1,759 lines

  1. package sun.jdbc.odbc;
  2.  
  3. import java.math.BigDecimal;
  4. import java.sql.DataTruncation;
  5. import java.sql.SQLException;
  6. import java.sql.SQLWarning;
  7. import java.sql.Time;
  8. import java.sql.Timestamp;
  9. import java.util.Date;
  10.  
  11. public class JdbcOdbc extends JdbcOdbcObject {
  12.    public static final int MajorVersion = 1;
  13.    public static final int MinorVersion = 1001;
  14.  
  15.    public JdbcOdbc(String var1) throws SQLException {
  16.       try {
  17.          if (JdbcOdbcObject.isTracing()) {
  18.             Date var2 = new Date();
  19.             String var3 = "";
  20.             short var4 = 1001;
  21.             if (var4 < 1000) {
  22.                var3 = var3 + "0";
  23.             }
  24.  
  25.             if (var4 < 100) {
  26.                var3 = var3 + "0";
  27.             }
  28.  
  29.             if (var4 < 10) {
  30.                var3 = var3 + "0";
  31.             }
  32.  
  33.             var3 = var3 + "" + var4;
  34.             JdbcOdbcObject.trace("JDBC to ODBC Bridge " + 1 + "." + var3);
  35.             JdbcOdbcObject.trace("Current Date/Time: " + var2.toString());
  36.             JdbcOdbcObject.trace("Loading " + var1 + "JdbcOdbc library");
  37.          }
  38.  
  39.          System.loadLibrary(var1 + "JdbcOdbc");
  40.       } catch (UnsatisfiedLinkError var5) {
  41.          if (JdbcOdbcObject.isTracing()) {
  42.             JdbcOdbcObject.trace("Unable to load " + var1 + "JdbcOdbc library");
  43.          }
  44.  
  45.          throw new SQLException("Unable to load " + var1 + "JdbcOdbc library");
  46.       }
  47.    }
  48.  
  49.    public synchronized int SQLAllocConnect(int var1) throws SQLException {
  50.       int var2 = 0;
  51.       if (JdbcOdbcObject.isTracing()) {
  52.          JdbcOdbcObject.trace("Allocating Connection handle (SQLAllocConnect)");
  53.       }
  54.  
  55.       byte[] var3 = new byte[1];
  56.       var2 = this.allocConnect(var1, var3);
  57.       if (var3[0] != 0) {
  58.          this.throwGenericSQLException();
  59.       } else if (JdbcOdbcObject.isTracing()) {
  60.          JdbcOdbcObject.trace("hDbc=" + var2);
  61.       }
  62.  
  63.       return var2;
  64.    }
  65.  
  66.    public synchronized int SQLAllocEnv() throws SQLException {
  67.       int var1 = 0;
  68.       if (JdbcOdbcObject.isTracing()) {
  69.          JdbcOdbcObject.trace("Allocating Environment handle (SQLAllocEnv)");
  70.       }
  71.  
  72.       byte[] var2 = new byte[1];
  73.       var1 = this.allocEnv(var2);
  74.       if (var2[0] != 0) {
  75.          this.throwGenericSQLException();
  76.       } else if (JdbcOdbcObject.isTracing()) {
  77.          JdbcOdbcObject.trace("hEnv=" + var1);
  78.       }
  79.  
  80.       return var1;
  81.    }
  82.  
  83.    public synchronized int SQLAllocStmt(int var1) throws SQLException {
  84.       int var2 = 0;
  85.       if (JdbcOdbcObject.isTracing()) {
  86.          JdbcOdbcObject.trace("Allocating Statement Handle (SQLAllocStmt), hDbc=" + var1);
  87.       }
  88.  
  89.       byte[] var3 = new byte[1];
  90.       var2 = this.allocStmt(var1, var3);
  91.       if (var3[0] != 0) {
  92.          this.throwGenericSQLException();
  93.       } else if (JdbcOdbcObject.isTracing()) {
  94.          JdbcOdbcObject.trace("hStmt=" + var2);
  95.       }
  96.  
  97.       return var2;
  98.    }
  99.  
  100.    public synchronized void SQLBindColDefault(int var1, int var2, byte[] var3, byte[] var4) throws SQLException {
  101.       if (JdbcOdbcObject.isTracing()) {
  102.          JdbcOdbcObject.trace("Binding default column (SQLBindCol), hStmt=" + var1 + ", ipar=" + var2 + ", length=" + var3.length);
  103.       }
  104.  
  105.       byte[] var5 = new byte[1];
  106.       this.bindColDefault(var1, var2, var3, var4, var5);
  107.       if (var5[0] != 0) {
  108.          this.standardError((short)var5[0], 0, 0, var1);
  109.       }
  110.  
  111.    }
  112.  
  113.    public synchronized void SQLBindInParameterAtExec(int var1, int var2, int var3, int var4, byte[] var5, byte[] var6) throws SQLException {
  114.       if (JdbcOdbcObject.isTracing()) {
  115.          JdbcOdbcObject.trace("Binding DATA_AT_EXEC parameter (SQLBindParameter), hStmt=" + var1 + ", ipar=" + var2 + ", SQLtype=" + var3 + ", len=" + var4);
  116.       }
  117.  
  118.       byte[] var7 = new byte[1];
  119.       this.bindInParameterAtExec(var1, var2, var3, var4, var5, var6, var7);
  120.       if (var7[0] != 0) {
  121.          this.standardError((short)var7[0], 0, 0, var1);
  122.       }
  123.  
  124.    }
  125.  
  126.    public synchronized void SQLBindInParameterBinary(int var1, int var2, int var3, byte[] var4, byte[] var5, byte[] var6) throws SQLException {
  127.       int var8 = JdbcOdbcLimits.DEFAULT_IN_PRECISION;
  128.       if (JdbcOdbcObject.isTracing()) {
  129.          JdbcOdbcObject.trace("Binding IN binary parameter (SQLBindParameter), hStmt=" + var1 + ", ipar=" + var2 + ", SQLtype=" + var3);
  130.          JdbcOdbcObject.dumpByte(var4, var4.length);
  131.       }
  132.  
  133.       byte[] var7 = new byte[1];
  134.       this.bindInParameterBinary(var1, var2, OdbcDef.jdbcTypeToOdbc(var3), var4, var8, var5, var6, var7);
  135.       if (var7[0] != 0) {
  136.          this.standardError((short)var7[0], 0, 0, var1);
  137.       }
  138.  
  139.    }
  140.  
  141.    public synchronized void SQLBindInParameterDate(int var1, int var2, java.sql.Date var3, byte[] var4) throws SQLException {
  142.       if (JdbcOdbcObject.isTracing()) {
  143.          JdbcOdbcObject.trace("Binding IN parameter date (SQLBindParameter), hStmt=" + var1 + ", ipar=" + var2 + ", rgbValue=" + var3.toString());
  144.       }
  145.  
  146.       byte[] var5 = new byte[1];
  147.       this.bindInParameterDate(var1, var2, ((Date)var3).getYear() + 1900, ((Date)var3).getMonth() + 1, ((Date)var3).getDate(), var4, var5);
  148.       if (var5[0] != 0) {
  149.          this.standardError((short)var5[0], 0, 0, var1);
  150.       }
  151.  
  152.    }
  153.  
  154.    public synchronized void SQLBindInParameterDouble(int var1, int var2, int var3, int var4, double var5, byte[] var7) throws SQLException {
  155.       if (JdbcOdbcObject.isTracing()) {
  156.          JdbcOdbcObject.trace("Binding IN parameter double (SQLBindParameter), hStmt=" + var1 + ", ipar=" + var2 + ", SQLtype=" + var3 + ", scale=" + var4 + ", rgbValue=" + var5);
  157.       }
  158.  
  159.       byte[] var8 = new byte[1];
  160.       this.bindInParameterDouble(var1, var2, OdbcDef.jdbcTypeToOdbc(var3), var4, var5, var7, var8);
  161.       if (var8[0] != 0) {
  162.          this.standardError((short)var8[0], 0, 0, var1);
  163.       }
  164.  
  165.    }
  166.  
  167.    public synchronized void SQLBindInParameterFloat(int var1, int var2, int var3, int var4, float var5, byte[] var6) throws SQLException {
  168.       if (JdbcOdbcObject.isTracing()) {
  169.          JdbcOdbcObject.trace("Binding IN parameter float (SQLBindParameter), hStmt=" + var1 + ", ipar=" + var2 + ", SQLtype=" + var3 + ", scale=" + var4 + ", rgbValue=" + var5);
  170.       }
  171.  
  172.       byte[] var7 = new byte[1];
  173.       this.bindInParameterFloat(var1, var2, OdbcDef.jdbcTypeToOdbc(var3), var4, var5, var6, var7);
  174.       if (var7[0] != 0) {
  175.          this.standardError((short)var7[0], 0, 0, var1);
  176.       }
  177.  
  178.    }
  179.  
  180.    public synchronized void SQLBindInParameterInteger(int var1, int var2, int var3, int var4, byte[] var5) throws SQLException {
  181.       if (JdbcOdbcObject.isTracing()) {
  182.          JdbcOdbcObject.trace("Binding IN parameter integer (SQLBindParameter), hStmt=" + var1 + ", ipar=" + var2 + "SQLtype=" + var3 + ", rgbValue=" + var4);
  183.       }
  184.  
  185.       byte[] var6 = new byte[1];
  186.       this.bindInParameterInteger(var1, var2, OdbcDef.jdbcTypeToOdbc(var3), var4, var5, var6);
  187.       if (var6[0] != 0) {
  188.          this.standardError((short)var6[0], 0, 0, var1);
  189.       }
  190.  
  191.    }
  192.  
  193.    public synchronized void SQLBindInParameterNull(int var1, int var2, int var3, byte[] var4) throws SQLException {
  194.       if (JdbcOdbcObject.isTracing()) {
  195.          JdbcOdbcObject.trace("Binding IN NULL parameter (SQLBindParameter), hStmt=" + var1 + ", ipar=" + var2 + ", SQLtype=" + var3);
  196.       }
  197.  
  198.       byte[] var5 = new byte[1];
  199.       this.bindInParameterNull(var1, var2, var3, var4, var5);
  200.       if (var5[0] != 0) {
  201.          this.standardError((short)var5[0], 0, 0, var1);
  202.       }
  203.  
  204.    }
  205.  
  206.    public synchronized void SQLBindInParameterString(int var1, int var2, int var3, int var4, int var5, String var6, byte[] var7) throws SQLException {
  207.       if (JdbcOdbcObject.isTracing()) {
  208.          JdbcOdbcObject.trace("Binding IN string parameter (SQLBindParameter), hStmt=" + var1 + ", ipar=" + var2 + ", SQLtype=" + var3 + ", precision=" + var4 + ", scale=" + var5 + ", rgbValue=" + var6);
  209.       }
  210.  
  211.       byte[] var8 = new byte[1];
  212.       this.bindInParameterString(var1, var2, OdbcDef.jdbcTypeToOdbc(var3), var6, var4, var5, var7, var8);
  213.       if (var8[0] != 0) {
  214.          this.standardError((short)var8[0], 0, 0, var1);
  215.       }
  216.  
  217.    }
  218.  
  219.    public synchronized void SQLBindInParameterTime(int var1, int var2, Time var3, byte[] var4) throws SQLException {
  220.       if (JdbcOdbcObject.isTracing()) {
  221.          JdbcOdbcObject.trace("Binding IN parameter time (SQLBindParameter), hStmt=" + var1 + ", ipar=" + var2 + ", rgbValue=" + var3.toString());
  222.       }
  223.  
  224.       byte[] var5 = new byte[1];
  225.       this.bindInParameterTime(var1, var2, ((Date)var3).getHours(), ((Date)var3).getMinutes(), ((Date)var3).getSeconds(), var4, var5);
  226.       if (var5[0] != 0) {
  227.          this.standardError((short)var5[0], 0, 0, var1);
  228.       }
  229.  
  230.    }
  231.  
  232.    public synchronized void SQLBindInParameterTimestamp(int var1, int var2, Timestamp var3, byte[] var4) throws SQLException {
  233.       if (JdbcOdbcObject.isTracing()) {
  234.          JdbcOdbcObject.trace("Binding IN parameter timestamp (SQLBindParameter), hStmt=" + var1 + ", ipar=" + var2 + ", rgbValue=" + var3.toString());
  235.       }
  236.  
  237.       byte[] var5 = new byte[1];
  238.       this.bindInParameterTimestamp(var1, var2, ((Date)var3).getYear() + 1900, ((Date)var3).getMonth() + 1, ((Date)var3).getDate(), ((Date)var3).getHours(), ((Date)var3).getMinutes(), ((Date)var3).getSeconds(), var3.getNanos(), var4, var5);
  239.       if (var5[0] != 0) {
  240.          this.standardError((short)var5[0], 0, 0, var1);
  241.       }
  242.  
  243.    }
  244.  
  245.    public synchronized void SQLBindOutParameterString(int var1, int var2, int var3, int var4, byte[] var5, byte[] var6) throws SQLException {
  246.       if (JdbcOdbcObject.isTracing()) {
  247.          JdbcOdbcObject.trace("Binding OUT string parameter (SQLBindParameter), hStmt=" + var1 + ", ipar=" + var2 + ", SQLtype=" + var3 + ", prec=" + (var5.length - 1) + ", scale=" + var4);
  248.       }
  249.  
  250.       byte[] var7 = new byte[1];
  251.       this.bindOutParameterString(var1, var2, var3, var4, var5, var6, var7);
  252.       if (var7[0] != 0) {
  253.          this.standardError((short)var7[0], 0, 0, var1);
  254.       }
  255.  
  256.    }
  257.  
  258.    public synchronized String SQLBrowseConnect(int var1, String var2) throws SQLException, SQLWarning {
  259.       String var5 = null;
  260.       if (JdbcOdbcObject.isTracing()) {
  261.          JdbcOdbcObject.trace("Connecting (SQLBrowseConnect), hDbc=" + var1 + ", szConnStrIn=" + var2);
  262.       }
  263.  
  264.       byte[] var3 = new byte[1];
  265.       byte[] var4 = new byte[JdbcOdbcLimits.MAX_BROWSE_RESULT_LENGTH];
  266.       this.browseConnect(var1, var2, var4, var3);
  267.       if (var3[0] == 99) {
  268.          var5 = new String(var4, 0);
  269.          var5 = var5.trim();
  270.          var3[0] = 0;
  271.       }
  272.  
  273.       if (var3[0] != 0) {
  274.          this.standardError((short)var3[0], 0, var1, 0);
  275.       }
  276.  
  277.       if (JdbcOdbcObject.isTracing()) {
  278.          JdbcOdbcObject.trace("Attributes=" + var5);
  279.       }
  280.  
  281.       return var5;
  282.    }
  283.  
  284.    public synchronized void SQLCancel(int var1) throws SQLException, SQLWarning {
  285.       if (JdbcOdbcObject.isTracing()) {
  286.          JdbcOdbcObject.trace("Cancelling (SQLCancel), hStmt=" + var1);
  287.       }
  288.  
  289.       byte[] var2 = new byte[1];
  290.       this.cancel(var1, var2);
  291.       if (var2[0] != 0) {
  292.          this.standardError((short)var2[0], 0, 0, var1);
  293.       }
  294.  
  295.    }
  296.  
  297.    public synchronized int SQLColAttributes(int var1, int var2, int var3) throws SQLException, JdbcOdbcSQLWarning {
  298.       int var4 = 0;
  299.       if (JdbcOdbcObject.isTracing()) {
  300.          JdbcOdbcObject.trace("Column attributes (SQLColAttributes), hStmt=" + var1 + ", icol=" + var2 + ", type=" + var3);
  301.       }
  302.  
  303.       byte[] var5 = new byte[1];
  304.       var4 = this.colAttributes(var1, var2, var3, var5);
  305.       if (var5[0] != 0) {
  306.          try {
  307.             this.standardError((short)var5[0], 0, 0, var1);
  308.          } catch (JdbcOdbcSQLWarning var7) {
  309.             if (JdbcOdbcObject.isTracing()) {
  310.                JdbcOdbcObject.trace("value (int)=" + var4);
  311.             }
  312.  
  313.             var7.value = BigDecimal.valueOf((long)var4);
  314.             throw var7;
  315.          }
  316.       } else if (JdbcOdbcObject.isTracing()) {
  317.          JdbcOdbcObject.trace("value (int)=" + var4);
  318.       }
  319.  
  320.       return var4;
  321.    }
  322.  
  323.    public synchronized String SQLColAttributesString(int var1, int var2, int var3) throws SQLException, JdbcOdbcSQLWarning {
  324.       if (JdbcOdbcObject.isTracing()) {
  325.          JdbcOdbcObject.trace("Column attributes (SQLColAttributes), hStmt=" + var1 + ", icol=" + var2 + ", type=" + var3);
  326.       }
  327.  
  328.       byte[] var5 = new byte[1];
  329.       byte[] var4 = new byte[JdbcOdbcLimits.DEFAULT_BUFFER_LENGTH];
  330.       this.colAttributesString(var1, var2, var3, var4, var5);
  331.       if (var5[0] != 0) {
  332.          try {
  333.             this.standardError((short)var5[0], 0, 0, var1);
  334.          } catch (JdbcOdbcSQLWarning var8) {
  335.             String var7 = new String(var4, 0);
  336.             if (JdbcOdbcObject.isTracing()) {
  337.                JdbcOdbcObject.trace("value (String)=" + var7.trim());
  338.             }
  339.  
  340.             var8.value = var7.trim();
  341.             throw var8;
  342.          }
  343.       }
  344.  
  345.       String var6 = new String(var4, 0);
  346.       if (JdbcOdbcObject.isTracing()) {
  347.          JdbcOdbcObject.trace("value (String)=" + var6.trim());
  348.       }
  349.  
  350.       return var6.trim();
  351.    }
  352.  
  353.    public synchronized void SQLColumns(int var1, String var2, String var3, String var4, String var5) throws SQLException, SQLWarning {
  354.       if (JdbcOdbcObject.isTracing()) {
  355.          JdbcOdbcObject.trace("(SQLColumns), hStmt=" + var1 + ", catalog=" + var2 + ", schema=" + var3 + ", table=" + var4 + ", column=" + var5);
  356.       }
  357.  
  358.       byte[] var6 = new byte[1];
  359.       this.columns(var1, var2, var2 == null, var3, var3 == null, var4, var4 == null, var5, var5 == null, var6);
  360.       if (var6[0] != 0) {
  361.          this.standardError((short)var6[0], 0, 0, var1);
  362.       }
  363.  
  364.    }
  365.  
  366.    public synchronized void SQLColumnPrivileges(int var1, String var2, String var3, String var4, String var5) throws SQLException, SQLWarning {
  367.       if (JdbcOdbcObject.isTracing()) {
  368.          JdbcOdbcObject.trace("(SQLColumnPrivileges), hStmt=" + var1 + ", catalog=" + var2 + ", schema=" + var3 + ", table=" + var4 + ", column=" + var5);
  369.       }
  370.  
  371.       byte[] var6 = new byte[1];
  372.       this.columnPrivileges(var1, var2, var2 == null, var3, var3 == null, var4, var4 == null, var5, var5 == null, var6);
  373.       if (var6[0] != 0) {
  374.          this.standardError((short)var6[0], 0, 0, var1);
  375.       }
  376.  
  377.    }
  378.  
  379.    public synchronized boolean SQLDescribeParamNullable(int var1, int var2) throws SQLException, JdbcOdbcSQLWarning {
  380.       boolean var5 = false;
  381.       if (JdbcOdbcObject.isTracing()) {
  382.          JdbcOdbcObject.trace("Parameter nullable (SQLDescribeParam), hStmt=" + var1 + ", ipar=" + var2);
  383.       }
  384.  
  385.       byte[] var3 = new byte[1];
  386.       int var4 = this.describeParam(var1, var2, 4, var3);
  387.       if (var3[0] != 0) {
  388.          this.standardError((short)var3[0], 0, 0, var1);
  389.       }
  390.  
  391.       if (var4 == 1) {
  392.          var5 = true;
  393.       }
  394.  
  395.       if (JdbcOdbcObject.isTracing()) {
  396.          JdbcOdbcObject.trace("nullable=" + var5);
  397.       }
  398.  
  399.       return var5;
  400.    }
  401.  
  402.    public synchronized int SQLDescribeParamPrecision(int var1, int var2) throws SQLException, JdbcOdbcSQLWarning {
  403.       if (JdbcOdbcObject.isTracing()) {
  404.          JdbcOdbcObject.trace("Parameter precision (SQLDescribeParam), hStmt=" + var1 + ", ipar=" + var2);
  405.       }
  406.  
  407.       byte[] var3 = new byte[1];
  408.       int var4 = this.describeParam(var1, var2, 2, var3);
  409.       if (var3[0] != 0) {
  410.          this.standardError((short)var3[0], 0, 0, var1);
  411.       }
  412.  
  413.       if (JdbcOdbcObject.isTracing()) {
  414.          JdbcOdbcObject.trace("precision=" + var4);
  415.       }
  416.  
  417.       return var4;
  418.    }
  419.  
  420.    public synchronized int SQLDescribeParamScale(int var1, int var2) throws SQLException, JdbcOdbcSQLWarning {
  421.       if (JdbcOdbcObject.isTracing()) {
  422.          JdbcOdbcObject.trace("Parameter scale (SQLDescribeParam), hStmt=" + var1 + ", ipar=" + var2);
  423.       }
  424.  
  425.       byte[] var3 = new byte[1];
  426.       int var4 = this.describeParam(var1, var2, 3, var3);
  427.       if (var3[0] != 0) {
  428.          this.standardError((short)var3[0], 0, 0, var1);
  429.       }
  430.  
  431.       if (JdbcOdbcObject.isTracing()) {
  432.          JdbcOdbcObject.trace("scale=" + var4);
  433.       }
  434.  
  435.       return var4;
  436.    }
  437.  
  438.    public synchronized int SQLDescribeParamType(int var1, int var2) throws SQLException, JdbcOdbcSQLWarning {
  439.       if (JdbcOdbcObject.isTracing()) {
  440.          JdbcOdbcObject.trace("Parameter type (SQLDescribeParam), hStmt=" + var1 + ", ipar=" + var2);
  441.       }
  442.  
  443.       byte[] var3 = new byte[1];
  444.       int var4 = this.describeParam(var1, var2, 1, var3);
  445.       if (var3[0] != 0) {
  446.          this.standardError((short)var3[0], 0, 0, var1);
  447.       }
  448.  
  449.       if (JdbcOdbcObject.isTracing()) {
  450.          JdbcOdbcObject.trace("type=" + var4);
  451.       }
  452.  
  453.       return var4;
  454.    }
  455.  
  456.    public synchronized void SQLDisconnect(int var1) throws SQLException {
  457.       if (JdbcOdbcObject.isTracing()) {
  458.          JdbcOdbcObject.trace("Disconnecting (SQLDisconnect), hDbc=" + var1);
  459.       }
  460.  
  461.       byte[] var2 = new byte[1];
  462.       this.disconnect(var1, var2);
  463.       if (var2[0] != 0) {
  464.          this.standardError((short)var2[0], 0, var1, 0);
  465.       }
  466.  
  467.    }
  468.  
  469.    public synchronized void SQLDriverConnect(int var1, String var2) throws SQLException, SQLWarning {
  470.       if (JdbcOdbcObject.isTracing()) {
  471.          JdbcOdbcObject.trace("Connecting (SQLDriverConnect), hDbc=" + var1 + ", szConnStrIn=" + var2);
  472.       }
  473.  
  474.       byte[] var3 = new byte[1];
  475.       this.driverConnect(var1, var2, var3);
  476.       if (var3[0] != 0) {
  477.          this.standardError((short)var3[0], 0, var1, 0);
  478.       }
  479.  
  480.    }
  481.  
  482.    public synchronized void SQLExecDirect(int var1, String var2) throws SQLException, SQLWarning {
  483.       if (JdbcOdbcObject.isTracing()) {
  484.          JdbcOdbcObject.trace("Executing (SQLExecDirect), hStmt=" + var1 + ", szSqlStr=" + var2);
  485.       }
  486.  
  487.       byte[] var3 = new byte[1];
  488.       this.execDirect(var1, var2, var3);
  489.       if (var3[0] != 0) {
  490.          this.standardError((short)var3[0], 0, 0, var1);
  491.       }
  492.  
  493.    }
  494.  
  495.    public synchronized boolean SQLExecute(int var1) throws SQLException, SQLWarning {
  496.       boolean var3 = false;
  497.       if (JdbcOdbcObject.isTracing()) {
  498.          JdbcOdbcObject.trace("Executing (SQLExecute), hStmt=" + var1);
  499.       }
  500.  
  501.       byte[] var2 = new byte[1];
  502.       this.execute(var1, var2);
  503.       if (var2[0] == 99) {
  504.          if (JdbcOdbcObject.isTracing()) {
  505.             JdbcOdbcObject.trace("SQL_NEED_DATA returned");
  506.          }
  507.  
  508.          var3 = true;
  509.          var2[0] = 0;
  510.       }
  511.  
  512.       if (var2[0] != 0) {
  513.          this.standardError((short)var2[0], 0, 0, var1);
  514.       }
  515.  
  516.       return var3;
  517.    }
  518.  
  519.    public synchronized boolean SQLFetch(int var1) throws SQLException, SQLWarning {
  520.       boolean var3 = true;
  521.       if (JdbcOdbcObject.isTracing()) {
  522.          JdbcOdbcObject.trace("Fetching (SQLFetch), hStmt=" + var1);
  523.       }
  524.  
  525.       byte[] var2 = new byte[1];
  526.       this.fetch(var1, var2);
  527.       if (var2[0] == 100) {
  528.          var3 = false;
  529.          var2[0] = 0;
  530.          if (JdbcOdbcObject.isTracing()) {
  531.             JdbcOdbcObject.trace("End of result set (SQL_NO_DATA)");
  532.          }
  533.       }
  534.  
  535.       if (var2[0] != 0) {
  536.          this.standardError((short)var2[0], 0, 0, var1);
  537.       }
  538.  
  539.       return var3;
  540.    }
  541.  
  542.    public synchronized void SQLForeignKeys(int var1, String var2, String var3, String var4, String var5, String var6, String var7) throws SQLException, SQLWarning {
  543.       if (JdbcOdbcObject.isTracing()) {
  544.          JdbcOdbcObject.trace("(SQLForeignKeys), hStmt=" + var1 + ", Pcatalog=" + var2 + ", Pschema=" + var3 + ", Ptable=" + var4 + ", Fcatalog=" + var5 + ", Fschema=" + var6 + ", Ftable=" + var7);
  545.       }
  546.  
  547.       byte[] var8 = new byte[1];
  548.       this.foreignKeys(var1, var2, var2 == null, var3, var3 == null, var4, var4 == null, var5, var5 == null, var6, var6 == null, var7, var7 == null, var8);
  549.       if (var8[0] != 0) {
  550.          this.standardError((short)var8[0], 0, 0, var1);
  551.       }
  552.  
  553.    }
  554.  
  555.    public synchronized void SQLFreeConnect(int var1) throws SQLException {
  556.       if (JdbcOdbcObject.isTracing()) {
  557.          JdbcOdbcObject.trace("Closing connection (SQLFreeConnect), hDbc=" + var1);
  558.       }
  559.  
  560.       byte[] var2 = new byte[1];
  561.       this.freeConnect(var1, var2);
  562.       if (var2[0] != 0) {
  563.          this.standardError((short)var2[0], 0, var1, 0);
  564.       }
  565.  
  566.    }
  567.  
  568.    public synchronized void SQLFreeEnv(int var1) throws SQLException {
  569.       if (JdbcOdbcObject.isTracing()) {
  570.          JdbcOdbcObject.trace("Closing environment (SQLFreeEnv), hEnv=" + var1);
  571.       }
  572.  
  573.       byte[] var2 = new byte[1];
  574.       this.freeEnv(var1, var2);
  575.       if (var2[0] != 0) {
  576.          this.throwGenericSQLException();
  577.       }
  578.  
  579.    }
  580.  
  581.    public synchronized void SQLFreeStmt(int var1, int var2) throws SQLException {
  582.       if (JdbcOdbcObject.isTracing()) {
  583.          JdbcOdbcObject.trace("Free statement (SQLFreeStmt), hStmt=" + var1 + ", fOption=" + var2);
  584.       }
  585.  
  586.       byte[] var3 = new byte[1];
  587.       this.freeStmt(var1, var2, var3);
  588.       if (var3[0] != 0) {
  589.          this.throwGenericSQLException();
  590.       }
  591.  
  592.    }
  593.  
  594.    public synchronized int SQLGetConnectOption(int var1, short var2) throws SQLException {
  595.       if (JdbcOdbcObject.isTracing()) {
  596.          JdbcOdbcObject.trace("Connection Option (SQLGetConnectOption), hDbc=" + var1 + ", fOption=" + var2);
  597.       }
  598.  
  599.       byte[] var3 = new byte[1];
  600.       int var4 = this.getConnectOption(var1, var2, var3);
  601.       if (var3[0] != 0) {
  602.          this.standardError((short)var3[0], 0, var1, 0);
  603.       }
  604.  
  605.       if (JdbcOdbcObject.isTracing()) {
  606.          JdbcOdbcObject.trace("option value (int)=" + var4);
  607.       }
  608.  
  609.       return var4;
  610.    }
  611.  
  612.    public synchronized String SQLGetConnectOptionString(int var1, short var2) throws SQLException {
  613.       if (JdbcOdbcObject.isTracing()) {
  614.          JdbcOdbcObject.trace("Connection Option (SQLGetConnectOption), hDbc=" + var1 + ", fOption=" + var2);
  615.       }
  616.  
  617.       byte[] var3 = new byte[1];
  618.       byte[] var4 = new byte[JdbcOdbcLimits.DEFAULT_BUFFER_LENGTH];
  619.       this.getConnectOptionString(var1, var2, var4, var3);
  620.       if (var3[0] != 0) {
  621.          this.standardError((short)var3[0], 0, var1, 0);
  622.       }
  623.  
  624.       String var5 = new String(var4, 0);
  625.       if (JdbcOdbcObject.isTracing()) {
  626.          JdbcOdbcObject.trace("option value (int)=" + var5.trim());
  627.       }
  628.  
  629.       return var5.trim();
  630.    }
  631.  
  632.    public synchronized String SQLGetCursorName(int var1) throws SQLException, JdbcOdbcSQLWarning {
  633.       if (JdbcOdbcObject.isTracing()) {
  634.          JdbcOdbcObject.trace("Cursor name (SQLGetCursorName), hStmt=" + var1);
  635.       }
  636.  
  637.       byte[] var3 = new byte[1];
  638.       byte[] var2 = new byte[JdbcOdbcLimits.DEFAULT_BUFFER_LENGTH];
  639.       this.getCursorName(var1, var2, var3);
  640.       if (var3[0] != 0) {
  641.          try {
  642.             this.standardError((short)var3[0], 0, 0, var1);
  643.          } catch (JdbcOdbcSQLWarning var6) {
  644.             String var5 = new String(var2, 0);
  645.             if (JdbcOdbcObject.isTracing()) {
  646.                JdbcOdbcObject.trace("value=" + var5.trim());
  647.             }
  648.  
  649.             var6.value = var5.trim();
  650.             throw var6;
  651.          }
  652.       }
  653.  
  654.       String var4 = new String(var2, 0);
  655.       if (JdbcOdbcObject.isTracing()) {
  656.          JdbcOdbcObject.trace("value=" + var4.trim());
  657.       }
  658.  
  659.       return var4.trim();
  660.    }
  661.  
  662.    public synchronized int SQLGetDataBinary(int var1, int var2, byte[] var3) throws SQLException, JdbcOdbcSQLWarning {
  663.       return this.SQLGetDataBinary(var1, var2, -2, var3, var3.length);
  664.    }
  665.  
  666.    public synchronized int SQLGetDataBinary(int var1, int var2, int var3, byte[] var4, int var5) throws SQLException, JdbcOdbcSQLWarning {
  667.       int var7 = 0;
  668.       if (JdbcOdbcObject.isTracing()) {
  669.          JdbcOdbcObject.trace("Get binary data (SQLGetData), hStmt=" + var1 + ", column=" + var2 + ", type=" + var3 + ", length=" + var5);
  670.       }
  671.  
  672.       byte[] var6 = new byte[2];
  673.       var7 = this.getDataBinary(var1, var2, var3, var4, var5, var6);
  674.       if (var6[0] == 100) {
  675.          var7 = -1;
  676.          var6[0] = 0;
  677.       }
  678.  
  679.       if (var6[0] != 0) {
  680.          try {
  681.             this.standardError((short)var6[0], 0, 0, var1);
  682.          } catch (JdbcOdbcSQLWarning var9) {
  683.             if (JdbcOdbcObject.isTracing()) {
  684.                if (var7 == -1) {
  685.                   JdbcOdbcObject.trace("NULL");
  686.                } else if (JdbcOdbcObject.isTracing()) {
  687.                   JdbcOdbcObject.trace("Bytes: " + var7);
  688.                }
  689.             }
  690.  
  691.             var9.value = new Integer(var7);
  692.             throw var9;
  693.          }
  694.       }
  695.  
  696.       if (JdbcOdbcObject.isTracing()) {
  697.          if (var7 == -1) {
  698.             JdbcOdbcObject.trace("NULL");
  699.          } else if (JdbcOdbcObject.isTracing()) {
  700.             JdbcOdbcObject.trace("Bytes: " + var7);
  701.          }
  702.       }
  703.  
  704.       return var7;
  705.    }
  706.  
  707.    public synchronized Double SQLGetDataDouble(int var1, int var2) throws SQLException, JdbcOdbcSQLWarning {
  708.       if (JdbcOdbcObject.isTracing()) {
  709.          JdbcOdbcObject.trace("Get double data (SQLGetData), hStmt=" + var1 + ", column=" + var2);
  710.       }
  711.  
  712.       byte[] var3 = new byte[2];
  713.       double var4 = this.getDataDouble(var1, var2, var3);
  714.       if (var3[0] != 0) {
  715.          try {
  716.             this.standardError((short)var3[0], 0, 0, var1);
  717.          } catch (JdbcOdbcSQLWarning var7) {
  718.             if (var3[1] == 0) {
  719.                if (JdbcOdbcObject.isTracing()) {
  720.                   JdbcOdbcObject.trace("value=" + var4);
  721.                }
  722.  
  723.                var7.value = new Double(var4);
  724.             } else {
  725.                if (JdbcOdbcObject.isTracing()) {
  726.                   JdbcOdbcObject.trace("NULL");
  727.                }
  728.  
  729.                var7.value = null;
  730.             }
  731.  
  732.             throw var7;
  733.          }
  734.       }
  735.  
  736.       if (var3[1] == 0) {
  737.          if (JdbcOdbcObject.isTracing()) {
  738.             JdbcOdbcObject.trace("value=" + var4);
  739.          }
  740.  
  741.          return new Double(var4);
  742.       } else {
  743.          if (JdbcOdbcObject.isTracing()) {
  744.             JdbcOdbcObject.trace("NULL");
  745.          }
  746.  
  747.          return null;
  748.       }
  749.    }
  750.  
  751.    public synchronized Float SQLGetDataFloat(int var1, int var2) throws SQLException, JdbcOdbcSQLWarning {
  752.       if (JdbcOdbcObject.isTracing()) {
  753.          JdbcOdbcObject.trace("Get float data (SQLGetData), hStmt=" + var1 + ", column=" + var2);
  754.       }
  755.  
  756.       byte[] var3 = new byte[2];
  757.       float var4 = this.getDataFloat(var1, var2, var3);
  758.       if (var3[0] != 0) {
  759.          try {
  760.             this.standardError((short)var3[0], 0, 0, var1);
  761.          } catch (JdbcOdbcSQLWarning var6) {
  762.             if (var3[1] == 0) {
  763.                if (JdbcOdbcObject.isTracing()) {
  764.                   JdbcOdbcObject.trace("value=" + var4);
  765.                }
  766.  
  767.                var6.value = new Float(var4);
  768.             } else {
  769.                if (JdbcOdbcObject.isTracing()) {
  770.                   JdbcOdbcObject.trace("NULL");
  771.                }
  772.  
  773.                var6.value = null;
  774.             }
  775.  
  776.             throw var6;
  777.          }
  778.       }
  779.  
  780.       if (var3[1] == 0) {
  781.          if (JdbcOdbcObject.isTracing()) {
  782.             JdbcOdbcObject.trace("value=" + var4);
  783.          }
  784.  
  785.          return new Float(var4);
  786.       } else {
  787.          if (JdbcOdbcObject.isTracing()) {
  788.             JdbcOdbcObject.trace("NULL");
  789.          }
  790.  
  791.          return null;
  792.       }
  793.    }
  794.  
  795.    public synchronized Integer SQLGetDataInteger(int var1, int var2) throws SQLException, JdbcOdbcSQLWarning {
  796.       if (JdbcOdbcObject.isTracing()) {
  797.          JdbcOdbcObject.trace("Get integer data (SQLGetData), hStmt=" + var1 + ", column=" + var2);
  798.       }
  799.  
  800.       byte[] var3 = new byte[2];
  801.       int var4 = this.getDataInteger(var1, var2, var3);
  802.       if (var3[0] != 0) {
  803.          try {
  804.             this.standardError((short)var3[0], 0, 0, var1);
  805.          } catch (JdbcOdbcSQLWarning var6) {
  806.             if (var3[1] == 0) {
  807.                if (JdbcOdbcObject.isTracing()) {
  808.                   JdbcOdbcObject.trace("value=" + var4);
  809.                }
  810.  
  811.                var6.value = new Integer(var4);
  812.             } else {
  813.                if (JdbcOdbcObject.isTracing()) {
  814.                   JdbcOdbcObject.trace("NULL");
  815.                }
  816.  
  817.                var6.value = null;
  818.             }
  819.  
  820.             throw var6;
  821.          }
  822.       }
  823.  
  824.       if (var3[1] == 0) {
  825.          if (JdbcOdbcObject.isTracing()) {
  826.             JdbcOdbcObject.trace("value=" + var4);
  827.          }
  828.  
  829.          return new Integer(var4);
  830.       } else {
  831.          if (JdbcOdbcObject.isTracing()) {
  832.             JdbcOdbcObject.trace("NULL");
  833.          }
  834.  
  835.          return null;
  836.       }
  837.    }
  838.  
  839.    public synchronized String SQLGetDataString(int var1, int var2, int var3, boolean var4) throws SQLException, JdbcOdbcSQLWarning {
  840.       if (JdbcOdbcObject.isTracing()) {
  841.          JdbcOdbcObject.trace("Get string data (SQLGetData), hStmt=" + var1 + ", column=" + var2 + ", maxLen=" + var3);
  842.       }
  843.  
  844.       byte[] var5 = new byte[2];
  845.       byte[] var6 = new byte[var3];
  846.       int var7 = this.getDataString(var1, var2, var6, var5);
  847.       if (var7 == 0) {
  848.          var5[1] = 1;
  849.       }
  850.  
  851.       if (var7 > var3) {
  852.          var7 = var3;
  853.       }
  854.  
  855.       if (var5[0] != 0) {
  856.          try {
  857.             this.standardError((short)var5[0], 0, 0, var1);
  858.          } catch (JdbcOdbcSQLWarning var10) {
  859.             if (var5[1] == 0) {
  860.                String var9;
  861.                if (var7 > 0) {
  862.                   var9 = new String(var6, 0, 0, var7);
  863.                } else {
  864.                   var9 = new String(var6, 0);
  865.                }
  866.  
  867.                if (JdbcOdbcObject.isTracing()) {
  868.                   JdbcOdbcObject.trace(var9.trim());
  869.                }
  870.  
  871.                if (var4) {
  872.                   var10.value = var9.trim();
  873.                } else {
  874.                   var10.value = var9;
  875.                }
  876.             } else {
  877.                if (JdbcOdbcObject.isTracing()) {
  878.                   JdbcOdbcObject.trace("NULL");
  879.                }
  880.  
  881.                var10.value = null;
  882.             }
  883.  
  884.             throw var10;
  885.          }
  886.       }
  887.  
  888.       if (var5[1] == 0) {
  889.          String var8;
  890.          if (var7 > 0) {
  891.             var8 = new String(var6, 0, 0, var7);
  892.          } else {
  893.             var8 = new String(var6, 0);
  894.          }
  895.  
  896.          if (JdbcOdbcObject.isTracing()) {
  897.             JdbcOdbcObject.trace(var8.trim());
  898.          }
  899.  
  900.          return var4 ? var8.trim() : var8;
  901.       } else {
  902.          if (JdbcOdbcObject.isTracing()) {
  903.             JdbcOdbcObject.trace("NULL");
  904.          }
  905.  
  906.          return null;
  907.       }
  908.    }
  909.  
  910.    public synchronized String SQLGetDataStringDate(int var1, int var2) throws SQLException, JdbcOdbcSQLWarning {
  911.       if (JdbcOdbcObject.isTracing()) {
  912.          JdbcOdbcObject.trace("Get date data (SQLGetData), hStmt=" + var1 + ", column=" + var2);
  913.       }
  914.  
  915.       byte[] var3 = new byte[2];
  916.       byte[] var4 = new byte[11];
  917.       this.getDataStringDate(var1, var2, var4, var3);
  918.       if (var3[0] != 0) {
  919.          try {
  920.             this.standardError((short)var3[0], 0, 0, var1);
  921.          } catch (JdbcOdbcSQLWarning var7) {
  922.             if (var3[1] == 0) {
  923.                String var6 = new String(var4, 0);
  924.                if (JdbcOdbcObject.isTracing()) {
  925.                   JdbcOdbcObject.trace(var6.trim());
  926.                }
  927.  
  928.                var7.value = var6.trim();
  929.             } else {
  930.                if (JdbcOdbcObject.isTracing()) {
  931.                   JdbcOdbcObject.trace("NULL");
  932.                }
  933.  
  934.                var7.value = null;
  935.             }
  936.  
  937.             throw var7;
  938.          }
  939.       }
  940.  
  941.       if (var3[1] == 0) {
  942.          String var5 = new String(var4, 0);
  943.          if (JdbcOdbcObject.isTracing()) {
  944.             JdbcOdbcObject.trace(var5.trim());
  945.          }
  946.  
  947.          return var5.trim();
  948.       } else {
  949.          if (JdbcOdbcObject.isTracing()) {
  950.             JdbcOdbcObject.trace("NULL");
  951.          }
  952.  
  953.          return null;
  954.       }
  955.    }
  956.  
  957.    public synchronized String SQLGetDataStringTime(int var1, int var2) throws SQLException, JdbcOdbcSQLWarning {
  958.       if (JdbcOdbcObject.isTracing()) {
  959.          JdbcOdbcObject.trace("Get time data (SQLGetData), hStmt=" + var1 + ", column=" + var2);
  960.       }
  961.  
  962.       byte[] var3 = new byte[2];
  963.       byte[] var4 = new byte[9];
  964.       this.getDataStringTime(var1, var2, var4, var3);
  965.       if (var3[0] != 0) {
  966.          try {
  967.             this.standardError((short)var3[0], 0, 0, var1);
  968.          } catch (JdbcOdbcSQLWarning var7) {
  969.             if (var3[1] == 0) {
  970.                String var6 = new String(var4, 0);
  971.                if (JdbcOdbcObject.isTracing()) {
  972.                   JdbcOdbcObject.trace(var6.trim());
  973.                }
  974.  
  975.                var7.value = var6.trim();
  976.             } else {
  977.                if (JdbcOdbcObject.isTracing()) {
  978.                   JdbcOdbcObject.trace("NULL");
  979.                }
  980.  
  981.                var7.value = null;
  982.             }
  983.  
  984.             throw var7;
  985.          }
  986.       }
  987.  
  988.       if (var3[1] == 0) {
  989.          String var5 = new String(var4, 0);
  990.          if (JdbcOdbcObject.isTracing()) {
  991.             JdbcOdbcObject.trace(var5.trim());
  992.          }
  993.  
  994.          return var5.trim();
  995.       } else {
  996.          if (JdbcOdbcObject.isTracing()) {
  997.             JdbcOdbcObject.trace("NULL");
  998.          }
  999.  
  1000.          return null;
  1001.       }
  1002.    }
  1003.  
  1004.    public synchronized String SQLGetDataStringTimestamp(int var1, int var2) throws SQLException, JdbcOdbcSQLWarning {
  1005.       if (JdbcOdbcObject.isTracing()) {
  1006.          JdbcOdbcObject.trace("Get timestamp data (SQLGetData), hStmt=" + var1 + ", column=" + var2);
  1007.       }
  1008.  
  1009.       byte[] var3 = new byte[2];
  1010.       byte[] var4 = new byte[30];
  1011.       this.getDataStringTimestamp(var1, var2, var4, var3);
  1012.       if (var3[0] != 0) {
  1013.          try {
  1014.             this.standardError((short)var3[0], 0, 0, var1);
  1015.          } catch (JdbcOdbcSQLWarning var7) {
  1016.             if (var3[1] == 0) {
  1017.                String var6 = new String(var4, 0);
  1018.                if (JdbcOdbcObject.isTracing()) {
  1019.                   JdbcOdbcObject.trace(var6.trim());
  1020.                }
  1021.  
  1022.                var7.value = var6.trim();
  1023.             } else {
  1024.                if (JdbcOdbcObject.isTracing()) {
  1025.                   JdbcOdbcObject.trace("NULL");
  1026.                }
  1027.  
  1028.                var7.value = null;
  1029.             }
  1030.  
  1031.             throw var7;
  1032.          }
  1033.       }
  1034.  
  1035.       if (var3[1] == 0) {
  1036.          String var5 = new String(var4, 0);
  1037.          if (JdbcOdbcObject.isTracing()) {
  1038.             JdbcOdbcObject.trace(var5.trim());
  1039.          }
  1040.  
  1041.          return var5.trim();
  1042.       } else {
  1043.          if (JdbcOdbcObject.isTracing()) {
  1044.             JdbcOdbcObject.trace("NULL");
  1045.          }
  1046.  
  1047.          return null;
  1048.       }
  1049.    }
  1050.  
  1051.    public synchronized int SQLGetInfo(int var1, short var2) throws SQLException {
  1052.       if (JdbcOdbcObject.isTracing()) {
  1053.          JdbcOdbcObject.trace("Get connection info (SQLGetInfo), hDbc=" + var1 + ", fInfoType=" + var2);
  1054.       }
  1055.  
  1056.       byte[] var3 = new byte[1];
  1057.       int var4 = this.getInfo(var1, var2, var3);
  1058.       if (var3[0] != 0) {
  1059.          this.standardError((short)var3[0], 0, var1, 0);
  1060.       }
  1061.  
  1062.       if (JdbcOdbcObject.isTracing()) {
  1063.          JdbcOdbcObject.trace(" int value=" + var4);
  1064.       }
  1065.  
  1066.       return var4;
  1067.    }
  1068.  
  1069.    public synchronized int SQLGetInfoShort(int var1, short var2) throws SQLException {
  1070.       if (JdbcOdbcObject.isTracing()) {
  1071.          JdbcOdbcObject.trace("Get connection info (SQLGetInfo), hDbc=" + var1 + ", fInfoType=" + var2);
  1072.       }
  1073.  
  1074.       byte[] var3 = new byte[1];
  1075.       int var4 = this.getInfoShort(var1, var2, var3);
  1076.       if (var3[0] != 0) {
  1077.          this.standardError((short)var3[0], 0, var1, 0);
  1078.       }
  1079.  
  1080.       if (JdbcOdbcObject.isTracing()) {
  1081.          JdbcOdbcObject.trace(" short value=" + var4);
  1082.       }
  1083.  
  1084.       return var4;
  1085.    }
  1086.  
  1087.    public synchronized String SQLGetInfoString(int var1, short var2) throws SQLException {
  1088.       return this.SQLGetInfoString(var1, var2, JdbcOdbcLimits.DEFAULT_BUFFER_LENGTH);
  1089.    }
  1090.  
  1091.    public synchronized String SQLGetInfoString(int var1, short var2, int var3) throws SQLException {
  1092.       if (JdbcOdbcObject.isTracing()) {
  1093.          JdbcOdbcObject.trace("Get connection info string (SQLGetInfo), hDbc=" + var1 + ", fInfoType=" + var2 + ", len=" + var3);
  1094.       }
  1095.  
  1096.       byte[] var4 = new byte[1];
  1097.       byte[] var5 = new byte[var3];
  1098.       this.getInfoString(var1, var2, var5, var4);
  1099.       if (var4[0] != 0) {
  1100.          this.standardError((short)var4[0], 0, var1, 0);
  1101.       }
  1102.  
  1103.       String var6 = new String(var5, 0);
  1104.       if (JdbcOdbcObject.isTracing()) {
  1105.          JdbcOdbcObject.trace(var6.trim());
  1106.       }
  1107.  
  1108.       return var6.trim();
  1109.    }
  1110.  
  1111.    public synchronized int SQLGetStmtOption(int var1, short var2) throws SQLException, JdbcOdbcSQLWarning {
  1112.       int var3 = 0;
  1113.       if (JdbcOdbcObject.isTracing()) {
  1114.          JdbcOdbcObject.trace("Get statement option (SQLGetStmtOption), hStmt=" + var1 + ", fOption=" + var2);
  1115.       }
  1116.  
  1117.       byte[] var4 = new byte[1];
  1118.       var3 = this.getStmtOption(var1, var2, var4);
  1119.       if (var4[0] != 0) {
  1120.          try {
  1121.             this.standardError((short)var4[0], 0, 0, var1);
  1122.          } catch (JdbcOdbcSQLWarning var6) {
  1123.             if (JdbcOdbcObject.isTracing()) {
  1124.                JdbcOdbcObject.trace("value=" + var3);
  1125.             }
  1126.  
  1127.             var6.value = BigDecimal.valueOf((long)var3);
  1128.             throw var6;
  1129.          }
  1130.       }
  1131.  
  1132.       if (JdbcOdbcObject.isTracing()) {
  1133.          JdbcOdbcObject.trace("value=" + var3);
  1134.       }
  1135.  
  1136.       return var3;
  1137.    }
  1138.  
  1139.    public synchronized void SQLGetTypeInfo(int var1, short var2) throws SQLException {
  1140.       if (JdbcOdbcObject.isTracing()) {
  1141.          JdbcOdbcObject.trace("Get type info (SQLGetTypeInfo), hStmt=" + var1 + ", fSqlType=" + var2);
  1142.       }
  1143.  
  1144.       byte[] var3 = new byte[1];
  1145.       this.getTypeInfo(var1, var2, var3);
  1146.       if (var3[0] != 0) {
  1147.          this.standardError((short)var3[0], 0, 0, var1);
  1148.       }
  1149.  
  1150.    }
  1151.  
  1152.    public synchronized boolean SQLMoreResults(int var1) throws SQLException, SQLWarning {
  1153.       boolean var3 = true;
  1154.       if (JdbcOdbcObject.isTracing()) {
  1155.          JdbcOdbcObject.trace("Get more results (SQLMoreResults), hStmt=" + var1);
  1156.       }
  1157.  
  1158.       byte[] var2 = new byte[1];
  1159.       this.moreResults(var1, var2);
  1160.       if (var2[0] == 100) {
  1161.          var3 = false;
  1162.          var2[0] = 0;
  1163.       }
  1164.  
  1165.       if (var2[0] != 0) {
  1166.          this.standardError((short)var2[0], 0, 0, var1);
  1167.       }
  1168.  
  1169.       if (JdbcOdbcObject.isTracing()) {
  1170.          JdbcOdbcObject.trace("More results: " + var3);
  1171.       }
  1172.  
  1173.       return var3;
  1174.    }
  1175.  
  1176.    public synchronized String SQLNativeSql(int var1, String var2) throws SQLException {
  1177.       byte[] var3 = new byte[1];
  1178.       int var5 = JdbcOdbcLimits.DEFAULT_NATIVE_SQL_LENGTH;
  1179.       if (var2.length() * 4 > var5) {
  1180.          var5 = var2.length() * 4;
  1181.          if (var5 > 32768) {
  1182.             var5 = 32768;
  1183.          }
  1184.       }
  1185.  
  1186.       if (JdbcOdbcObject.isTracing()) {
  1187.          JdbcOdbcObject.trace("Convert native SQL (SQLNativeSql), hDbc=" + var1 + ", nativeLen=" + var5 + ", SQL=" + var2);
  1188.       }
  1189.  
  1190.       byte[] var4 = new byte[var5];
  1191.       this.nativeSql(var1, var2, var4, var3);
  1192.       if (var3[0] != 0) {
  1193.          this.standardError((short)var3[0], 0, var1, 0);
  1194.       }
  1195.  
  1196.       String var6 = new String(var4, 0);
  1197.       if (JdbcOdbcObject.isTracing()) {
  1198.          JdbcOdbcObject.trace("Native SQL=" + var6.trim());
  1199.       }
  1200.  
  1201.       return var6.trim();
  1202.    }
  1203.  
  1204.    public synchronized int SQLNumParams(int var1) throws SQLException, JdbcOdbcSQLWarning {
  1205.       int var3 = 0;
  1206.       if (JdbcOdbcObject.isTracing()) {
  1207.          JdbcOdbcObject.trace("Number of parameter markers (SQLNumParams), hStmt=" + var1);
  1208.       }
  1209.  
  1210.       byte[] var2 = new byte[1];
  1211.       var3 = this.numParams(var1, var2);
  1212.       if (var2[0] != 0) {
  1213.          this.standardError((short)var2[0], 0, 0, var1);
  1214.       }
  1215.  
  1216.       if (JdbcOdbcObject.isTracing()) {
  1217.          JdbcOdbcObject.trace("value=" + var3);
  1218.       }
  1219.  
  1220.       return var3;
  1221.    }
  1222.  
  1223.    public synchronized int SQLNumResultCols(int var1) throws SQLException, JdbcOdbcSQLWarning {
  1224.       int var3 = 0;
  1225.       if (JdbcOdbcObject.isTracing()) {
  1226.          JdbcOdbcObject.trace("Number of result columns (SQLNumResultCols), hStmt=" + var1);
  1227.       }
  1228.  
  1229.       byte[] var2 = new byte[1];
  1230.       var3 = this.numResultCols(var1, var2);
  1231.       if (var2[0] != 0) {
  1232.          try {
  1233.             this.standardError((short)var2[0], 0, 0, var1);
  1234.          } catch (JdbcOdbcSQLWarning var5) {
  1235.             if (JdbcOdbcObject.isTracing()) {
  1236.                JdbcOdbcObject.trace("value=" + var3);
  1237.             }
  1238.  
  1239.             var5.value = BigDecimal.valueOf((long)var3);
  1240.             throw var5;
  1241.          }
  1242.       }
  1243.  
  1244.       if (JdbcOdbcObject.isTracing()) {
  1245.          JdbcOdbcObject.trace("value=" + var3);
  1246.       }
  1247.  
  1248.       return var3;
  1249.    }
  1250.  
  1251.    public synchronized int SQLParamData(int var1) throws SQLException, JdbcOdbcSQLWarning {
  1252.       int var3 = 0;
  1253.       if (JdbcOdbcObject.isTracing()) {
  1254.          JdbcOdbcObject.trace("Get parameter number (SQLParamData), hStmt=" + var1);
  1255.       }
  1256.  
  1257.       byte[] var2 = new byte[1];
  1258.       var3 = this.paramData(var1, var2);
  1259.       if (var2[0] == 99) {
  1260.          var2[0] = 0;
  1261.       } else {
  1262.          var3 = -1;
  1263.       }
  1264.  
  1265.       if (var2[0] != 0) {
  1266.          this.standardError((short)var2[0], 0, 0, var1);
  1267.       }
  1268.  
  1269.       if (JdbcOdbcObject.isTracing()) {
  1270.          JdbcOdbcObject.trace("Parameter needing data=" + var3);
  1271.       }
  1272.  
  1273.       return var3;
  1274.    }
  1275.  
  1276.    public synchronized void SQLPrepare(int var1, String var2) throws SQLException, SQLWarning {
  1277.       if (JdbcOdbcObject.isTracing()) {
  1278.          JdbcOdbcObject.trace("Preparing (SQLPrepare), hStmt=" + var1 + ", szSqlStr=" + var2);
  1279.       }
  1280.  
  1281.       byte[] var3 = new byte[1];
  1282.       this.prepare(var1, var2, var3);
  1283.       if (var3[0] != 0) {
  1284.          this.standardError((short)var3[0], 0, 0, var1);
  1285.       }
  1286.  
  1287.    }
  1288.  
  1289.    public synchronized void SQLPutData(int var1, byte[] var2, int var3) throws SQLException {
  1290.       if (JdbcOdbcObject.isTracing()) {
  1291.          JdbcOdbcObject.trace("Putting data (SQLPutData), hStmt=" + var1 + ", len=" + var3);
  1292.       }
  1293.  
  1294.       byte[] var4 = new byte[1];
  1295.       this.putData(var1, var2, var3, var4);
  1296.       if (var4[0] != 0) {
  1297.          this.standardError((short)var4[0], 0, 0, var1);
  1298.       }
  1299.  
  1300.    }
  1301.  
  1302.    public synchronized void SQLPrimaryKeys(int var1, String var2, String var3, String var4) throws SQLException, SQLWarning {
  1303.       if (JdbcOdbcObject.isTracing()) {
  1304.          JdbcOdbcObject.trace("Primary keys (SQLPrimaryKeys), hStmt=" + var1 + ", catalog=" + var2 + ", schema=" + var3 + ", table=" + var4);
  1305.       }
  1306.  
  1307.       byte[] var5 = new byte[1];
  1308.       this.primaryKeys(var1, var2, var2 == null, var3, var3 == null, var4, var4 == null, var5);
  1309.       if (var5[0] != 0) {
  1310.          this.standardError((short)var5[0], 0, 0, var1);
  1311.       }
  1312.  
  1313.    }
  1314.  
  1315.    public synchronized void SQLProcedures(int var1, String var2, String var3, String var4) throws SQLException, SQLWarning {
  1316.       if (JdbcOdbcObject.isTracing()) {
  1317.          JdbcOdbcObject.trace("Procedures (SQLProcedures), hStmt=" + var1 + ", catalog=" + var2 + ", schema=" + var3 + ", procedure=" + var4);
  1318.       }
  1319.  
  1320.       byte[] var5 = new byte[1];
  1321.       this.procedures(var1, var2, var2 == null, var3, var3 == null, var4, var4 == null, var5);
  1322.       if (var5[0] != 0) {
  1323.          this.standardError((short)var5[0], 0, 0, var1);
  1324.       }
  1325.  
  1326.    }
  1327.  
  1328.    public synchronized void SQLProcedureColumns(int var1, String var2, String var3, String var4, String var5) throws SQLException, SQLWarning {
  1329.       if (JdbcOdbcObject.isTracing()) {
  1330.          JdbcOdbcObject.trace("Procedure columns (SQLProcedureColumns), hStmt=" + var1 + ", catalog=" + var2 + ", schema=" + var3 + ", procedure=" + var4 + ", column=" + var5);
  1331.       }
  1332.  
  1333.       byte[] var6 = new byte[1];
  1334.       this.procedureColumns(var1, var2, var2 == null, var3, var3 == null, var4, var4 == null, var5, var5 == null, var6);
  1335.       if (var6[0] != 0) {
  1336.          this.standardError((short)var6[0], 0, 0, var1);
  1337.       }
  1338.  
  1339.    }
  1340.  
  1341.    public synchronized int SQLRowCount(int var1) throws SQLException, JdbcOdbcSQLWarning {
  1342.       int var3 = 0;
  1343.       if (JdbcOdbcObject.isTracing()) {
  1344.          JdbcOdbcObject.trace("Number of affected rows (SQLRowCount), hStmt=" + var1);
  1345.       }
  1346.  
  1347.       byte[] var2 = new byte[1];
  1348.       var3 = this.rowCount(var1, var2);
  1349.       if (var2[0] != 0) {
  1350.          try {
  1351.             this.standardError((short)var2[0], 0, 0, var1);
  1352.          } catch (JdbcOdbcSQLWarning var5) {
  1353.             if (JdbcOdbcObject.isTracing()) {
  1354.                JdbcOdbcObject.trace("value=" + var3);
  1355.             }
  1356.  
  1357.             var5.value = BigDecimal.valueOf((long)var3);
  1358.             throw var5;
  1359.          }
  1360.       }
  1361.  
  1362.       if (JdbcOdbcObject.isTracing()) {
  1363.          JdbcOdbcObject.trace("value=" + var3);
  1364.       }
  1365.  
  1366.       return var3;
  1367.    }
  1368.  
  1369.    public synchronized void SQLSetConnectOption(int var1, short var2, int var3) throws SQLException {
  1370.       if (JdbcOdbcObject.isTracing()) {
  1371.          JdbcOdbcObject.trace("Setting connection option (SQLSetConnectOption), hDbc=" + var1 + ", fOption=" + var2 + ", vParam=" + var3);
  1372.       }
  1373.  
  1374.       byte[] var4 = new byte[1];
  1375.       this.setConnectOption(var1, var2, var3, var4);
  1376.       if (var4[0] != 0) {
  1377.          this.standardError((short)var4[0], 0, var1, 0);
  1378.       }
  1379.  
  1380.    }
  1381.  
  1382.    public synchronized void SQLSetConnectOption(int var1, short var2, String var3) throws SQLException {
  1383.       if (JdbcOdbcObject.isTracing()) {
  1384.          JdbcOdbcObject.trace("Setting connection option string (SQLSetConnectOption), hDbc=" + var1 + ", fOption=" + var2 + ", vParam=" + var3);
  1385.       }
  1386.  
  1387.       byte[] var4 = new byte[1];
  1388.       this.setConnectOptionString(var1, var2, var3, var4);
  1389.       if (var4[0] != 0) {
  1390.          this.standardError((short)var4[0], 0, var1, 0);
  1391.       }
  1392.  
  1393.    }
  1394.  
  1395.    public synchronized void SQLSetCursorName(int var1, String var2) throws SQLException {
  1396.       if (JdbcOdbcObject.isTracing()) {
  1397.          JdbcOdbcObject.trace("Setting cursor name (SQLSetCursorName), hStmt=" + var1 + ", szCursor=" + var2);
  1398.       }
  1399.  
  1400.       byte[] var3 = new byte[1];
  1401.       this.setCursorName(var1, var2, var3);
  1402.       if (var3[0] != 0) {
  1403.          this.standardError((short)var3[0], 0, 0, var1);
  1404.       }
  1405.  
  1406.    }
  1407.  
  1408.    public synchronized void SQLSetStmtOption(int var1, short var2, int var3) throws SQLException {
  1409.       if (JdbcOdbcObject.isTracing()) {
  1410.          JdbcOdbcObject.trace("Setting statement option (SQLSetStmtOption), hStmt=" + var1 + ", fOption=" + var2 + ", vParam=" + var3);
  1411.       }
  1412.  
  1413.       byte[] var4 = new byte[1];
  1414.       this.setStmtOption(var1, var2, var3, var4);
  1415.       if (var4[0] != 0) {
  1416.          this.standardError((short)var4[0], 0, 0, var1);
  1417.       }
  1418.  
  1419.    }
  1420.  
  1421.    public synchronized void SQLSpecialColumns(int var1, short var2, String var3, String var4, String var5, int var6, boolean var7) throws SQLException, SQLWarning {
  1422.       if (JdbcOdbcObject.isTracing()) {
  1423.          JdbcOdbcObject.trace("Special columns (SQLSpecialColumns), hStmt=" + var1 + ", fColType=" + var2 + ",catalog=" + var3 + ", schema=" + var4 + ", table=" + var5 + ", fScope=" + var6 + ", fNullable=" + var7);
  1424.       }
  1425.  
  1426.       byte[] var8 = new byte[1];
  1427.       this.specialColumns(var1, var2, var3, var3 == null, var4, var4 == null, var5, var5 == null, var6, var7, var8);
  1428.       if (var8[0] != 0) {
  1429.          this.standardError((short)var8[0], 0, 0, var1);
  1430.       }
  1431.  
  1432.    }
  1433.  
  1434.    public synchronized void SQLStatistics(int var1, String var2, String var3, String var4, boolean var5, boolean var6) throws SQLException, SQLWarning {
  1435.       if (JdbcOdbcObject.isTracing()) {
  1436.          JdbcOdbcObject.trace("Statistics (SQLStatistics), hStmt=" + var1 + ",catalog=" + var2 + ", schema=" + var3 + ", table=" + var4 + ", unique=" + var5 + ", approximate=" + var6);
  1437.       }
  1438.  
  1439.       byte[] var7 = new byte[1];
  1440.       this.statistics(var1, var2, var2 == null, var3, var3 == null, var4, var4 == null, var5, var6, var7);
  1441.       if (var7[0] != 0) {
  1442.          this.standardError((short)var7[0], 0, 0, var1);
  1443.       }
  1444.  
  1445.    }
  1446.  
  1447.    public synchronized void SQLTables(int var1, String var2, String var3, String var4, String var5) throws SQLException, SQLWarning {
  1448.       if (JdbcOdbcObject.isTracing()) {
  1449.          JdbcOdbcObject.trace("Tables (SQLTables), hStmt=" + var1 + ",catalog=" + var2 + ", schema=" + var3 + ", table=" + var4 + ", types=" + var5);
  1450.       }
  1451.  
  1452.       byte[] var6 = new byte[1];
  1453.       this.tables(var1, var2, var2 == null, var3, var3 == null, var4, var4 == null, var5, var5 == null, var6);
  1454.       if (var6[0] != 0) {
  1455.          this.standardError((short)var6[0], 0, 0, var1);
  1456.       }
  1457.  
  1458.    }
  1459.  
  1460.    public synchronized void SQLTablePrivileges(int var1, String var2, String var3, String var4) throws SQLException, SQLWarning {
  1461.       if (JdbcOdbcObject.isTracing()) {
  1462.          JdbcOdbcObject.trace("Tables (SQLTables), hStmt=" + var1 + ",catalog=" + var2 + ", schema=" + var3 + ", table=" + var4);
  1463.       }
  1464.  
  1465.       byte[] var5 = new byte[1];
  1466.       this.tablePrivileges(var1, var2, var2 == null, var3, var3 == null, var4, var4 == null, var5);
  1467.       if (var5[0] != 0) {
  1468.          this.standardError((short)var5[0], 0, 0, var1);
  1469.       }
  1470.  
  1471.    }
  1472.  
  1473.    public synchronized void SQLTransact(int var1, int var2, short var3) throws SQLException {
  1474.       if (JdbcOdbcObject.isTracing()) {
  1475.          JdbcOdbcObject.trace("Transaction (SQLTransact), hEnv=" + var1 + ", hDbc=" + var2 + ", fType=" + var3);
  1476.       }
  1477.  
  1478.       byte[] var4 = new byte[1];
  1479.       this.transact(var1, var2, var3, var4);
  1480.       if (var4[0] != 0) {
  1481.          this.throwGenericSQLException();
  1482.       }
  1483.  
  1484.    }
  1485.  
  1486.    public native int bufferToInt(byte[] var1);
  1487.  
  1488.    public static SQLWarning convertWarning(JdbcOdbcSQLWarning var0) {
  1489.       Object var1 = var0;
  1490.       if (((SQLException)var0).getSQLState().equals("01004")) {
  1491.          DataTruncation var2 = new DataTruncation(-1, false, true, 0, 0);
  1492.          var1 = var2;
  1493.       }
  1494.  
  1495.       return (SQLWarning)var1;
  1496.    }
  1497.  
  1498.    protected native int allocConnect(int var1, byte[] var2);
  1499.  
  1500.    protected native int allocEnv(byte[] var1);
  1501.  
  1502.    protected native int allocStmt(int var1, byte[] var2);
  1503.  
  1504.    protected native void cancel(int var1, byte[] var2);
  1505.  
  1506.    protected native void bindColDefault(int var1, int var2, byte[] var3, byte[] var4, byte[] var5);
  1507.  
  1508.    protected native void bindInParameterAtExec(int var1, int var2, int var3, int var4, byte[] var5, byte[] var6, byte[] var7);
  1509.  
  1510.    protected native void bindInParameterBinary(int var1, int var2, int var3, byte[] var4, int var5, byte[] var6, byte[] var7, byte[] var8);
  1511.  
  1512.    protected native void bindInParameterDate(int var1, int var2, int var3, int var4, int var5, byte[] var6, byte[] var7);
  1513.  
  1514.    protected native void bindInParameterDouble(int var1, int var2, int var3, int var4, double var5, byte[] var7, byte[] var8);
  1515.  
  1516.    protected native void bindInParameterFloat(int var1, int var2, int var3, int var4, float var5, byte[] var6, byte[] var7);
  1517.  
  1518.    protected native void bindInParameterInteger(int var1, int var2, int var3, int var4, byte[] var5, byte[] var6);
  1519.  
  1520.    protected native void bindInParameterNull(int var1, int var2, int var3, byte[] var4, byte[] var5);
  1521.  
  1522.    protected native void bindInParameterString(int var1, int var2, int var3, String var4, int var5, int var6, byte[] var7, byte[] var8);
  1523.  
  1524.    protected native void bindInParameterTime(int var1, int var2, int var3, int var4, int var5, byte[] var6, byte[] var7);
  1525.  
  1526.    protected native void bindInParameterTimestamp(int var1, int var2, int var3, int var4, int var5, int var6, int var7, int var8, int var9, byte[] var10, byte[] var11);
  1527.  
  1528.    protected native void bindOutParameterString(int var1, int var2, int var3, int var4, byte[] var5, byte[] var6, byte[] var7);
  1529.  
  1530.    protected native void browseConnect(int var1, String var2, byte[] var3, byte[] var4);
  1531.  
  1532.    protected native int colAttributes(int var1, int var2, int var3, byte[] var4);
  1533.  
  1534.    protected native void colAttributesString(int var1, int var2, int var3, byte[] var4, byte[] var5);
  1535.  
  1536.    protected native void columns(int var1, String var2, boolean var3, String var4, boolean var5, String var6, boolean var7, String var8, boolean var9, byte[] var10);
  1537.  
  1538.    protected native void columnPrivileges(int var1, String var2, boolean var3, String var4, boolean var5, String var6, boolean var7, String var8, boolean var9, byte[] var10);
  1539.  
  1540.    protected native int describeParam(int var1, int var2, int var3, byte[] var4);
  1541.  
  1542.    protected native void disconnect(int var1, byte[] var2);
  1543.  
  1544.    protected native void driverConnect(int var1, String var2, byte[] var3);
  1545.  
  1546.    protected native int error(int var1, int var2, int var3, byte[] var4, byte[] var5, byte[] var6);
  1547.  
  1548.    protected native void execDirect(int var1, String var2, byte[] var3);
  1549.  
  1550.    protected native void execute(int var1, byte[] var2);
  1551.  
  1552.    protected native void fetch(int var1, byte[] var2);
  1553.  
  1554.    protected native void foreignKeys(int var1, String var2, boolean var3, String var4, boolean var5, String var6, boolean var7, String var8, boolean var9, String var10, boolean var11, String var12, boolean var13, byte[] var14);
  1555.  
  1556.    protected native void freeConnect(int var1, byte[] var2);
  1557.  
  1558.    protected native void freeEnv(int var1, byte[] var2);
  1559.  
  1560.    protected native void freeStmt(int var1, int var2, byte[] var3);
  1561.  
  1562.    protected native int getConnectOption(int var1, short var2, byte[] var3);
  1563.  
  1564.    protected native void getConnectOptionString(int var1, short var2, byte[] var3, byte[] var4);
  1565.  
  1566.    protected native void getCursorName(int var1, byte[] var2, byte[] var3);
  1567.  
  1568.    protected native int getStmtOption(int var1, short var2, byte[] var3);
  1569.  
  1570.    protected native int getDataBinary(int var1, int var2, int var3, byte[] var4, int var5, byte[] var6);
  1571.  
  1572.    protected native double getDataDouble(int var1, int var2, byte[] var3);
  1573.  
  1574.    protected native float getDataFloat(int var1, int var2, byte[] var3);
  1575.  
  1576.    protected native int getDataInteger(int var1, int var2, byte[] var3);
  1577.  
  1578.    protected native int getDataString(int var1, int var2, byte[] var3, byte[] var4);
  1579.  
  1580.    protected native void getDataStringDate(int var1, int var2, byte[] var3, byte[] var4);
  1581.  
  1582.    protected native void getDataStringTime(int var1, int var2, byte[] var3, byte[] var4);
  1583.  
  1584.    protected native void getDataStringTimestamp(int var1, int var2, byte[] var3, byte[] var4);
  1585.  
  1586.    protected native int getInfo(int var1, short var2, byte[] var3);
  1587.  
  1588.    protected native int getInfoShort(int var1, short var2, byte[] var3);
  1589.  
  1590.    protected native void getInfoString(int var1, short var2, byte[] var3, byte[] var4);
  1591.  
  1592.    protected native void getTypeInfo(int var1, short var2, byte[] var3);
  1593.  
  1594.    protected native void moreResults(int var1, byte[] var2);
  1595.  
  1596.    protected native void nativeSql(int var1, String var2, byte[] var3, byte[] var4);
  1597.  
  1598.    protected native int numParams(int var1, byte[] var2);
  1599.  
  1600.    protected native int numResultCols(int var1, byte[] var2);
  1601.  
  1602.    protected native int paramData(int var1, byte[] var2);
  1603.  
  1604.    protected native void prepare(int var1, String var2, byte[] var3);
  1605.  
  1606.    protected native void primaryKeys(int var1, String var2, boolean var3, String var4, boolean var5, String var6, boolean var7, byte[] var8);
  1607.  
  1608.    protected native void procedures(int var1, String var2, boolean var3, String var4, boolean var5, String var6, boolean var7, byte[] var8);
  1609.  
  1610.    protected native void procedureColumns(int var1, String var2, boolean var3, String var4, boolean var5, String var6, boolean var7, String var8, boolean var9, byte[] var10);
  1611.  
  1612.    protected native void putData(int var1, byte[] var2, int var3, byte[] var4);
  1613.  
  1614.    protected native int rowCount(int var1, byte[] var2);
  1615.  
  1616.    protected native void setConnectOption(int var1, short var2, int var3, byte[] var4);
  1617.  
  1618.    protected native void setConnectOptionString(int var1, short var2, String var3, byte[] var4);
  1619.  
  1620.    protected native void setCursorName(int var1, String var2, byte[] var3);
  1621.  
  1622.    protected native void setStmtOption(int var1, short var2, int var3, byte[] var4);
  1623.  
  1624.    protected native void specialColumns(int var1, short var2, String var3, boolean var4, String var5, boolean var6, String var7, boolean var8, int var9, boolean var10, byte[] var11);
  1625.  
  1626.    protected native void statistics(int var1, String var2, boolean var3, String var4, boolean var5, String var6, boolean var7, boolean var8, boolean var9, byte[] var10);
  1627.  
  1628.    protected native void tables(int var1, String var2, boolean var3, String var4, boolean var5, String var6, boolean var7, String var8, boolean var9, byte[] var10);
  1629.  
  1630.    protected native void tablePrivileges(int var1, String var2, boolean var3, String var4, boolean var5, String var6, boolean var7, byte[] var8);
  1631.  
  1632.    protected native void transact(int var1, int var2, short var3, byte[] var4);
  1633.  
  1634.    SQLException createSQLException(int var1, int var2, int var3) {
  1635.       boolean var8 = false;
  1636.       SQLException var9 = null;
  1637.       SQLException var10 = null;
  1638.       if (JdbcOdbcObject.isTracing()) {
  1639.          JdbcOdbcObject.trace("ERROR - Generating SQLException...");
  1640.       }
  1641.  
  1642.       while(!var8) {
  1643.          byte[] var6 = new byte[1];
  1644.          byte[] var4 = new byte[6];
  1645.          byte[] var5 = new byte[JdbcOdbcLimits.DEFAULT_BUFFER_LENGTH];
  1646.          int var7 = this.error(var1, var2, var3, var4, var5, var6);
  1647.          if (var6[0] != 0) {
  1648.             var8 = true;
  1649.          } else {
  1650.             Object var11 = null;
  1651.             String var12 = new String(var5, 0);
  1652.             String var13 = new String(var4, 0);
  1653.             SQLException var14 = new SQLException(var12.trim(), var13.trim(), var7);
  1654.             if (var9 == null) {
  1655.                var9 = var14;
  1656.             } else {
  1657.                var10.setNextException(var14);
  1658.             }
  1659.  
  1660.             var10 = var14;
  1661.          }
  1662.       }
  1663.  
  1664.       if (var9 == null) {
  1665.          String var15 = "General error";
  1666.          String var16 = "S1000";
  1667.          if (JdbcOdbcObject.isTracing()) {
  1668.             JdbcOdbcObject.trace("ERROR - " + var16 + " " + var15);
  1669.          }
  1670.  
  1671.          var9 = new SQLException(var15, var16);
  1672.       }
  1673.  
  1674.       return var9;
  1675.    }
  1676.  
  1677.    SQLWarning createSQLWarning(int var1, int var2, int var3) {
  1678.       boolean var8 = false;
  1679.       JdbcOdbcSQLWarning var9 = null;
  1680.       JdbcOdbcSQLWarning var10 = null;
  1681.       if (JdbcOdbcObject.isTracing()) {
  1682.          JdbcOdbcObject.trace("WARNING - Generating SQLWarning...");
  1683.       }
  1684.  
  1685.       while(!var8) {
  1686.          byte[] var6 = new byte[1];
  1687.          byte[] var4 = new byte[6];
  1688.          byte[] var5 = new byte[JdbcOdbcLimits.DEFAULT_BUFFER_LENGTH];
  1689.          int var7 = this.error(var1, var2, var3, var4, var5, var6);
  1690.          if (var6[0] != 0) {
  1691.             var8 = true;
  1692.          } else {
  1693.             Object var11 = null;
  1694.             String var12 = new String(var5, 0);
  1695.             String var13 = new String(var4, 0);
  1696.             JdbcOdbcSQLWarning var14 = new JdbcOdbcSQLWarning(var12.trim(), var13.trim(), var7);
  1697.             if (var9 == null) {
  1698.                var9 = var14;
  1699.             } else {
  1700.                ((SQLWarning)var10).setNextWarning(var14);
  1701.             }
  1702.  
  1703.             var10 = var14;
  1704.          }
  1705.       }
  1706.  
  1707.       if (var9 == null) {
  1708.          String var15 = "General warning";
  1709.          String var16 = "S1000";
  1710.          if (JdbcOdbcObject.isTracing()) {
  1711.             JdbcOdbcObject.trace("WARNING - " + var16 + " " + var15);
  1712.          }
  1713.  
  1714.          var9 = new JdbcOdbcSQLWarning(var15, var16);
  1715.       }
  1716.  
  1717.       return var9;
  1718.    }
  1719.  
  1720.    void throwGenericSQLException() throws SQLException {
  1721.       String var1 = "General error";
  1722.       String var2 = "S1000";
  1723.       if (JdbcOdbcObject.isTracing()) {
  1724.          JdbcOdbcObject.trace("ERROR - " + var2 + " " + var1);
  1725.       }
  1726.  
  1727.       throw new SQLException(var1, var2);
  1728.    }
  1729.  
  1730.    void standardError(short var1, int var2, int var3, int var4) throws SQLException, SQLWarning {
  1731.       if (JdbcOdbcObject.isTracing()) {
  1732.          JdbcOdbcObject.trace("RETCODE = " + var1);
  1733.       }
  1734.  
  1735.       switch (var1) {
  1736.          case -2:
  1737.             String var6 = "Invalid handle";
  1738.             if (JdbcOdbcObject.isTracing()) {
  1739.                JdbcOdbcObject.trace("ERROR - " + var6);
  1740.             }
  1741.  
  1742.             throw new SQLException(var6);
  1743.          case -1:
  1744.             throw this.createSQLException(var2, var3, var4);
  1745.          case 1:
  1746.             throw this.createSQLWarning(var2, var3, var4);
  1747.          case 100:
  1748.             String var5 = "No data found";
  1749.             if (JdbcOdbcObject.isTracing()) {
  1750.                JdbcOdbcObject.trace("ERROR - " + var5);
  1751.             }
  1752.  
  1753.             throw new SQLException(var5);
  1754.          default:
  1755.             this.throwGenericSQLException();
  1756.       }
  1757.    }
  1758. }
  1759.