--- FM2SQL/Attic/DBBean.java 2003/12/05 11:46:39 1.1.1.1 +++ FM2SQL/Attic/DBBean.java 2004/03/12 11:48:57 1.10 @@ -1,5 +1,5 @@ -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; + + import java.sql.*; import java.util.*; import com.fmi.jdbc.*; @@ -53,6 +53,7 @@ public class DBBean String url = ""; DatabaseMetaData dbMetaData; Vector columnNames; + Vector ids = new Vector(); String user = (System.getProperty("user.name") == null) ? "" : System.getProperty("user.name"); //"postgres"; String passwd = ""; //"3333";//"rogo"; public int maxHits = 10; @@ -66,9 +67,9 @@ public class DBBean { DriverManager.registerDriver(new com.fmi.jdbc.JdbcDriver()); DriverManager.registerDriver((Driver) Class.forName("org.postgresql.Driver").newInstance()); - DriverManager.registerDriver((Driver) Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance()); DriverManager.registerDriver((Driver) Class.forName("com.mysql.jdbc.Driver").newInstance()); - + DriverManager.registerDriver((Driver) Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance()); + // wait a maximum of 10 seconds when attempting to establish a connection DriverManager.setLoginTimeout(10); } catch (Exception e) @@ -194,6 +195,18 @@ public class DBBean quoteChar = "\""; // needed for postgres } + public void setIDVector(Vector ids) + { + this.ids = ids; + } + + /** + * returns a Vector containing the ID Row Name + **/ + public Vector getIDVector() + { + return ids; + } /** * returns a Vector containing the Tablenames or an error message in the Vector */ @@ -633,13 +646,21 @@ public class DBBean { result = null; Statement stm = null; + // System.out.println("Query " + query); if (!connection.isClosed()) stm = connection.createStatement(); stm.setMaxRows(numberOfHits); - result = stm.executeQuery(query); - // System.out.println(result+" "+stm.getMoreResults()); + long time = System.currentTimeMillis(); + stm.execute(query); + long time2 = System.currentTimeMillis(); + + System.out.println("time to execute "+(time2-time)); + // stm.setMaxRows(numberOfHits); + + result = stm.getResultSet(); + // System.out.println(result+" "+stm.getUpdateCount()); metaData = result.getMetaData(); return result; } @@ -1205,8 +1226,17 @@ public class DBBean // m_columnClasses.addElement(String.class); } // to catch - } else if (metaData.getColumnType(i) == Types.DATE) - { + } else if (metaData.getColumnType(i) == Types.INTEGER) + { + // use the ResultSet.getObject method for retieving images + // from FileMaker Pro container fields; the ResultSet.getObject + // method returns a java.awt.Image object for FileMaker Pro + // container fields + + tableRow.addElement(new Integer(resultSet.getInt(i))); + // m_columnClasses.addElement(java.sql.Date.class); + } else if (metaData.getColumnType(i) == Types.DATE) + { // use the ResultSet.getObject method for retieving images // from FileMaker Pro container fields; the ResultSet.getObject // method returns a java.awt.Image object for FileMaker Pro @@ -1335,5 +1365,24 @@ public class DBBean resultSet.next(); return resultSet.getInt(1); } - -} + public TreeSet getIDVector(String id,String table,String query,int numHits) throws Exception + { + TreeSet t= new TreeSet(); + getConnection(); + 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 ); + while(true) + { + Vector vec = getNextRow(); + if (vec == null) + break; + t.add(vec.get(0)); + } + this.result=result; + metaData = (this.result==null) ?null:this.result.getMetaData(); + return t; + } + +} \ No newline at end of file