home *** CD-ROM | disk | FTP | other *** search
/ CD Actual Thematic 7: Programming / CDAT7.iso / Share / Java / JDesignerPro / Jdp3_0.exe / data1.cab / Program_Files / JDPMain.jar / JDPJdbcDirect.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-10-21  |  5.6 KB  |  339 lines

  1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.ResultSet;
  4. import java.sql.ResultSetMetaData;
  5. import java.sql.SQLException;
  6. import java.sql.Statement;
  7. import java.sql.Timestamp;
  8. import java.util.Hashtable;
  9. import java.util.Properties;
  10. import java.util.StringTokenizer;
  11. import java.util.Vector;
  12.  
  13. public class JDPJdbcDirect {
  14.    private String jdbcDriver = "sun.jdbc.odbc.JdbcOdbcDriver";
  15.    private String jdbcPrefix = "jdbc:odbc:";
  16.    private String jdbcSuffix = "";
  17.    private String connectionString = "";
  18.    private String userid = "";
  19.    private String password = "";
  20.    Connection con;
  21.    Statement stmt;
  22.    int maxRows = 1000;
  23.    int timeOut = 60;
  24.    String SEP = "\u0003";
  25.    int numCols;
  26.    int numRows;
  27.    String error = "";
  28.  
  29.    public int execSQL(String var1, Vector var2) {
  30.       this.error = "";
  31.       int var3 = -1;
  32.       String var4 = var1.toUpperCase();
  33.  
  34.       try {
  35.          boolean var5 = this.execute(var1);
  36.          if (var5) {
  37.             ResultSet var6 = this.stmt.getResultSet();
  38.             var3 = this.dispResultSet(var6, var2);
  39.          } else {
  40.             var3 = this.stmt.getUpdateCount();
  41.             if (!var4.startsWith("UPDATE") && !var4.startsWith("INSERT") && !var4.startsWith("DELETE") && !var4.startsWith("SELECT") && var3 < 0) {
  42.                var3 = 0;
  43.             }
  44.          }
  45.  
  46.          this.close();
  47.       } catch (Exception var8) {
  48.          ((Throwable)var8).printStackTrace();
  49.          this.error = ((Throwable)var8).toString();
  50.       }
  51.  
  52.       return var3;
  53.    }
  54.  
  55.    public void close() throws SQLException {
  56.       if (this.stmt != null) {
  57.          this.stmt.close();
  58.       }
  59.  
  60.    }
  61.  
  62.    private boolean execute(String var1) throws Exception {
  63.       if (this.jdbcDriver != null) {
  64.          Class.forName(this.jdbcDriver);
  65.       }
  66.  
  67.       if (this.con == null) {
  68.          String var2 = "UID=" + this.userid + ";";
  69.          var2 = var2 + "PWD=" + this.password + ";";
  70.          var2 = var2 + this.connectionString;
  71.          this.con = this.getConnection(this.jdbcPrefix + this.jdbcSuffix, var2);
  72.       }
  73.  
  74.       this.stmt = this.con.createStatement();
  75.  
  76.       try {
  77.          this.stmt.setMaxRows(this.maxRows);
  78.       } catch (Exception var4) {
  79.       }
  80.  
  81.       try {
  82.          this.stmt.setQueryTimeout(this.timeOut);
  83.       } catch (Exception var3) {
  84.       }
  85.  
  86.       boolean var7 = this.stmt.execute(var1);
  87.       return var7;
  88.    }
  89.  
  90.    public int execute(String var1, Vector var2) {
  91.       this.error = "";
  92.       int var3 = -1;
  93.       String var4 = var1.toUpperCase();
  94.  
  95.       try {
  96.          boolean var5 = this.execute(var1);
  97.          if (var5) {
  98.             ResultSet var6 = this.stmt.getResultSet();
  99.             var3 = this.dispResultSet(var6, var2);
  100.          } else {
  101.             var3 = this.stmt.getUpdateCount();
  102.             if (!var4.startsWith("UPDATE") && !var4.startsWith("INSERT") && !var4.startsWith("DELETE") && !var4.startsWith("SELECT") && var3 < 0) {
  103.                var3 = 0;
  104.             }
  105.          }
  106.       } catch (Exception var8) {
  107.          ((Throwable)var8).printStackTrace();
  108.          this.error = ((Throwable)var8).toString();
  109.       }
  110.  
  111.       return var3;
  112.    }
  113.  
  114.    public int getRowCount() {
  115.       return this.numRows;
  116.    }
  117.  
  118.    public int dispResultSet(ResultSet var1, Vector var2) throws SQLException {
  119.       this.numRows = 0;
  120.       ResultSetMetaData var3 = var1.getMetaData();
  121.  
  122.       try {
  123.          this.numCols = var3.getColumnCount();
  124.  
  125.          for(boolean var4 = var1.next(); var4; var4 = var1.next()) {
  126.             StringBuffer var5 = new StringBuffer();
  127.  
  128.             for(int var6 = 1; var6 <= this.numCols; ++var6) {
  129.                if (var6 > 1) {
  130.                   var5.append(this.SEP);
  131.                }
  132.  
  133.                int var8 = var3.getColumnType(var6);
  134.                String var7;
  135.                if (var8 != 1 && var8 != 12 && var8 != -1) {
  136.                   if (var8 != 4 && var8 != 5 && var8 != -6 && var8 != -5) {
  137.                      if (var8 != 2 && var8 != 8) {
  138.                         if (var8 != 93 && var8 != 92 && var8 != 91) {
  139.                            var7 = var1.getString(var6);
  140.                         } else {
  141.                            Timestamp var16 = var1.getTimestamp(var6);
  142.                            if (var16 != null) {
  143.                               var7 = Long.toString(var1.getTimestamp(var6).getTime());
  144.                            } else {
  145.                               var7 = "0";
  146.                            }
  147.                         }
  148.                      } else {
  149.                         String var9 = var1.getString(var6);
  150.                         if (var9 != null) {
  151.                            int var10 = var9.indexOf(".");
  152.                            if (var10 > 0) {
  153.                               double var11 = Double.valueOf(var9.substring(0, var10));
  154.                               float var13 = Float.valueOf(var9);
  155.                               if ((float)var11 == var13) {
  156.                                  var7 = var9.substring(0, var9.indexOf("."));
  157.                               } else {
  158.                                  var7 = var9;
  159.                               }
  160.                            } else {
  161.                               var7 = var9;
  162.                            }
  163.                         } else {
  164.                            var7 = "0";
  165.                         }
  166.                      }
  167.                   } else {
  168.                      var7 = Integer.toString(var1.getInt(var6));
  169.                   }
  170.                } else {
  171.                   var7 = var1.getString(var6);
  172.                }
  173.  
  174.                var5.append(var7);
  175.             }
  176.  
  177.             if (this.numCols > 0) {
  178.                ++this.numRows;
  179.                var2.addElement(var5.toString());
  180.                new StringBuffer();
  181.             }
  182.          }
  183.  
  184.          if (var1 != null) {
  185.             var1.close();
  186.          }
  187.       } catch (Exception var15) {
  188.          ((Throwable)var15).printStackTrace();
  189.       }
  190.  
  191.       return this.numRows;
  192.    }
  193.  
  194.    public void setPWD(String var1) {
  195.       if (var1 != null) {
  196.          this.password = var1;
  197.       } else {
  198.          this.password = "";
  199.       }
  200.    }
  201.  
  202.    public String getPWD() {
  203.       return this.password;
  204.    }
  205.  
  206.    public void setJdbcPrefix(String var1) {
  207.       if (var1 != null) {
  208.          this.jdbcPrefix = var1;
  209.       } else {
  210.          this.jdbcPrefix = "";
  211.       }
  212.    }
  213.  
  214.    public String getJdbcPrefix() {
  215.       return this.jdbcPrefix;
  216.    }
  217.  
  218.    public void setMaxRows(int var1) {
  219.       this.maxRows = var1;
  220.    }
  221.  
  222.    public int getMaxRows() {
  223.       return this.maxRows;
  224.    }
  225.  
  226.    public int getColumnCount() {
  227.       return this.numCols;
  228.    }
  229.  
  230.    public void setTimeOut(int var1) {
  231.       this.timeOut = var1;
  232.    }
  233.  
  234.    public int getTimeOut() {
  235.       return this.timeOut;
  236.    }
  237.  
  238.    public void setJdbcDriver(String var1) {
  239.       if (var1 != null) {
  240.          this.jdbcDriver = var1;
  241.       } else {
  242.          this.jdbcDriver = "";
  243.       }
  244.    }
  245.  
  246.    public String getJdbcDriver() {
  247.       return this.jdbcDriver;
  248.    }
  249.  
  250.    public void setCSTR(String var1) {
  251.       if (var1 != null) {
  252.          this.connectionString = var1;
  253.       }
  254.  
  255.    }
  256.  
  257.    private Connection getConnection(String var1, String var2) throws Exception {
  258.       Properties var3 = new Properties();
  259.       StringTokenizer var4 = new StringTokenizer(var2, ";");
  260.       int var5 = var4.countTokens();
  261.  
  262.       for(int var6 = 0; var6 < var5; ++var6) {
  263.          String var7 = var4.nextToken();
  264.          int var8 = var7.indexOf("=");
  265.          if (var8 >= 0) {
  266.             String var9 = var7.substring(0, var8);
  267.             if (var9.equals("UID")) {
  268.                var9 = "user";
  269.             }
  270.  
  271.             if (var9.equals("PWD")) {
  272.                var9 = "password";
  273.             }
  274.  
  275.             if (var8 > 0) {
  276.                ((Hashtable)var3).put(var9, var7.substring(var8 + 1));
  277.             }
  278.          }
  279.       }
  280.  
  281.       System.out.println("Attempting connection to: " + var1);
  282.       Connection var10 = DriverManager.getConnection(var1, var3);
  283.       System.out.println("Opened new connection to: " + var1);
  284.       return var10;
  285.    }
  286.  
  287.    public String getCSTR() {
  288.       return this.connectionString;
  289.    }
  290.  
  291.    public void setUID(String var1) {
  292.       if (var1 != null) {
  293.          this.userid = var1;
  294.       } else {
  295.          this.userid = "";
  296.       }
  297.    }
  298.  
  299.    public String getUID() {
  300.       return this.userid;
  301.    }
  302.  
  303.    public Statement getStatement() {
  304.       return this.stmt;
  305.    }
  306.  
  307.    public String getError() {
  308.       return this.error;
  309.    }
  310.  
  311.    public void setJdbcSuffix(String var1) {
  312.       if (var1 != null) {
  313.          this.jdbcSuffix = var1;
  314.       } else {
  315.          this.jdbcSuffix = "";
  316.       }
  317.    }
  318.  
  319.    public String getJdbcSuffix() {
  320.       return this.jdbcSuffix;
  321.    }
  322.  
  323.    public Connection connect() throws Exception {
  324.       if (this.jdbcDriver != null) {
  325.          Class.forName(this.jdbcDriver);
  326.       }
  327.  
  328.       if (this.con == null) {
  329.          String var1 = "UID=" + this.userid + ";";
  330.          var1 = var1 + "PWD=" + this.password + ";";
  331.          var1 = var1 + this.connectionString;
  332.          this.con = this.getConnection(this.jdbcPrefix + this.jdbcSuffix, var1);
  333.       }
  334.  
  335.       this.stmt = this.con.createStatement();
  336.       return this.con;
  337.    }
  338. }
  339.