--- FM2SQL/Attic/DBBean.java 2004/07/09 10:26:38 1.27 +++ FM2SQL/Attic/DBBean.java 2004/10/29 10:28:10 1.37 @@ -86,8 +86,9 @@ public class DBBean DriverManager.registerDriver((Driver) Class.forName("org.postgresql.Driver").newInstance()); DriverManager.registerDriver((Driver) Class.forName("com.mysql.jdbc.Driver").newInstance()); DriverManager.registerDriver((Driver) Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance()); + DriverManager.registerDriver((Driver) Class.forName("com.ddtek.jdbc.sequelink.SequeLinkDriver").newInstance()); DriverManager.registerDriver((Driver) Class.forName("acs.jdbc.Driver").newInstance()); - + // wait a maximum of 10 seconds when attempting to establish a connection DriverManager.setLoginTimeout(10); } catch (Exception e) @@ -377,7 +378,7 @@ public class DBBean * Returns the result for select * from table * with maxHits = 500 default value */ - public Vector[] getQueryData(String table) throws SQLException, ParseException + public Vector[] getQueryData(String table) throws SQLException, ParseException,Exception { return getQueryData("SELECT * from " + quoteChar + table + quoteChar, maxHits); @@ -388,7 +389,7 @@ public class DBBean * Returns the result of the query * or an Vector array of Vectors containing error messages */ - public Vector[] getQueryData(String query, FM2SQL.ProgressDialog dialog, int maxHits) throws SQLException + public Vector[] getQueryData(String query, FM2SQL.ProgressDialog dialog, int maxHits) throws SQLException,Exception { long timeStart = System.currentTimeMillis(); ResultSet resultSet = null; @@ -457,7 +458,7 @@ public class DBBean * Returns the result of the query * or an Vector array of Vectors containing error messages */ - public Vector[] getQueryData(String query, int maxHits) throws SQLException, ParseException + public Vector[] getQueryData(String query, int maxHits) throws SQLException, ParseException,Exception { long timeStart = System.currentTimeMillis(); ResultSet resultSet = null; @@ -612,8 +613,18 @@ public class DBBean // container fields try { - tableRow.addElement(new Double(resultSet.getDouble(i))); - m_columnClasses.addElement(Double.class); + Double value =new Double(resultSet.getDouble(i)); + + + // tableRow.addElement(new Double(resultSet.getDouble(i))); + String tVal =value.toString(); + tVal = tVal.substring(tVal.indexOf('.')+1); + boolean checkMe = tVal.length()==1&&tVal.equals("0"); + // System.out.println("check was"+checkMe+" "+tVal); + if(checkMe) + tableRow.addElement(new Integer(value.intValue())); + else + tableRow.addElement(value); } catch (Exception e) { @@ -642,17 +653,26 @@ public class DBBean // if(resultSet.getObject(i)!=null) System.out.println(resultSet.getObject(i)); try { + String utf8 = null; + if (metaData instanceof ResultSetMetaDataExt) + { byte[] b = resultSet.getBytes(i); - String utf8 = null; + if (metaData instanceof ResultSetMetaDataExt) utf8 = (b == null) ? null : new String(b); else utf8 = (b == null) ? null : new String(b, "UTF-8"); - utf8 = (utf8 == null) ? null : new String(utf8.getBytes("UTF-8"), "UTF-8"); - tableRow.addElement(utf8); + } + else + utf8=resultSet.getString(i); + + // utf8 = (utf8 == null) ? null : new String(utf8.getBytes("UTF-8"), "UTF-8"); + tableRow.addElement(utf8); + } catch (Exception e) { System.out.println("Hey I Got an error" + e); + e.printStackTrace(); } m_columnClasses.addElement(java.lang.String.class); } @@ -699,7 +719,7 @@ public class DBBean * with the numberOfHits as maximum * @return the result as an ResultSet object */ - public ResultSet makeQuery(String query, int numberOfHits) throws SQLException + public ResultSet makeQuery(String query, int numberOfHits) throws SQLException,Exception { result = null; Statement stm = null; @@ -737,8 +757,10 @@ public class DBBean } catch (Exception e) { // TODO remove - if (FM2SQL.fmInstance != null) + if (Convert.isGUI&&Convert.debug) FM2SQL.showErrorDialog("Error caught!! \n Query was " + query + " \n", "Debug Info"); + e.printStackTrace(); + throw e; } return result; @@ -1518,7 +1540,7 @@ public class DBBean ResultSet result = this.result; String subQuery = query.substring(query.lastIndexOf(table) + table.length() + 1); System.out.println("subQuery " + subQuery); - makeQuery("select " + id + " from " + getQC() + table + getQC() + subQuery, numHits); + makeQuery("select " + getQC()+id+getQC() + " from " + getQC() + table + getQC() + subQuery, numHits); while (true) { Vector vec = getNextRow(); @@ -1545,5 +1567,43 @@ public class DBBean { useNormanToUnicodeMapper = b; } + /** + * + */ + protected void closeAllConnections() + { + Enumeration enumeration = connectionPool.elements(); + while(enumeration.hasMoreElements()) + { + ConnectionPool conPol =(ConnectionPool)enumeration.nextElement(); + try + { + System.out.println(conPol); + conPol.con.close(); + } catch (SQLException e) + { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } + + } + /** + * @param indexField + */ + public String getColumnType(String indexField) throws SQLException + { + Vector names=getColumnNames(); + for (int i = 0; i < names.size(); i++) + { + if(names.get(i).toString().equals(indexField)) + { + System .out.println("found field "+names.get(i)+" "+metaData.getColumnTypeName(i+1)); + return metaData.getColumnTypeName(i+1); + + } + } + return ""; + } } \ No newline at end of file