Diff for /FM2SQL/Attic/DBBean.java between versions 1.4 and 1.15

version 1.4, 2004/01/19 08:24:37 version 1.15, 2004/04/15 11:13:59
Line 1 Line 1
   /*
    * DBBean.java -- Class that ecapsulates all database actions 
    * Filemake to SQL Converter 
    * Copyright (C) 2004 Robert Gordesch (rogo@mpiwg-berlin.mpg.de
    * This program is free software; you can redistribute it and/or modify it
    * under the terms of the GNU General Public License as published by the Free
    * Software Foundation; either version 2 of the License, or (at your option)
    * any later version.  Please read license.txt for the full details. A copy of
    * the GPL may be found at http://www.gnu.org/copyleft/lgpl.html  You should
    * have received a copy of the GNU General Public License along with this
    * program; if not, write to the Free Software Foundation, Inc., 59 Temple
    * Place, Suite 330, Boston, MA 02111-1307 USA  Created on 15.09.2003 by
    * rogo  
    */
   
   
 import java.sql.*;  import java.sql.*;
   import java.text.DateFormat;
 import java.util.*;  import java.util.*;
   
 import com.fmi.jdbc.*;  import com.fmi.jdbc.*;
   
 /**  /**
Line 67  public class DBBean Line 83  public class DBBean
     {      {
       DriverManager.registerDriver(new com.fmi.jdbc.JdbcDriver());        DriverManager.registerDriver(new com.fmi.jdbc.JdbcDriver());
       DriverManager.registerDriver((Driver) Class.forName("org.postgresql.Driver").newInstance());        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("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        // wait a maximum of 10 seconds when attempting to establish a connection
       DriverManager.setLoginTimeout(10);        DriverManager.setLoginTimeout(10);
Line 555  public class DBBean Line 571  public class DBBean
           // container fields            // container fields
           try            try
           {            {
             tableRow.addElement(new Integer(resultSet.getInt(i)));              tableRow.addElement(new Double(resultSet.getDouble(i)));
             m_columnClasses.addElement(Integer.class);              m_columnClasses.addElement(Double.class);
   
           } catch (Exception e)            } catch (Exception e)
           {            {
Line 574  public class DBBean Line 590  public class DBBean
             if (number.length() > 0)              if (number.length() > 0)
             {              {
               tableRow.addElement(null);                tableRow.addElement(null);
               m_columnClasses.addElement(Integer.class);                m_columnClasses.addElement(Double.class);
             } else              } else
               tableRow.addElement(null);                tableRow.addElement(null);
           }            }
Line 651  public class DBBean Line 667  public class DBBean
   
     if (!connection.isClosed())      if (!connection.isClosed())
       stm = connection.createStatement();        stm = connection.createStatement();
       else {
         
         
         try
         {
           connection = getConnection();
           stm= connection.createStatement();
         } catch (Exception e)
         {
           // TODO Auto-generated catch block
           e.printStackTrace();
         }
       }
     stm.setMaxRows(numberOfHits);      stm.setMaxRows(numberOfHits);
     long time = System.currentTimeMillis();      long time = System.currentTimeMillis();
     stm.execute(query);      stm.execute(query);
Line 1226  public class DBBean Line 1255  public class DBBean
           //  m_columnClasses.addElement(String.class);            //  m_columnClasses.addElement(String.class);
         } // to catch          } // to catch
   
       } else if (metaData.getColumnType(i) == Types.DATE)        } else if (metaData.getColumnType(i) == Types.INTEGER)
       {        {
         // use the ResultSet.getObject method for retieving images          // use the ResultSet.getObject method for retieving images
         // from FileMaker Pro container fields; the ResultSet.getObject          // from FileMaker Pro container fields; the ResultSet.getObject
         // method returns a java.awt.Image object for FileMaker Pro          // method returns a java.awt.Image object for FileMaker Pro
         // container fields          // 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
           // container fields
             try
             {
         tableRow.addElement(resultSet.getDate(i));          tableRow.addElement(resultSet.getDate(i));
   
             } catch (Exception e)
             {
               // work around for parse bug in FM JDBC Driver 
               // for dates of format dd-mm-yyyy
               String date=resultSet.getString(i);
               date=date.replace('-','.');
               java.text.DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.SHORT,Locale.GERMAN);
               java.util.Date d= dateFormat.parse(date);
               Calendar cal=Calendar.getInstance(Locale.GERMAN);
               cal.setTime(d);
               date=(cal.get(Calendar.YEAR))+"-"+(cal.get(Calendar.MONTH)+1)+"-"+cal.get(Calendar.DATE);
               tableRow.addElement(java.sql.Date.valueOf(date));
                System.out.println(date);      
             }
         //  m_columnClasses.addElement(java.sql.Date.class);          //  m_columnClasses.addElement(java.sql.Date.class);
       } else if (metaData.getColumnTypeName(i) == "NUMBER")        } else if (metaData.getColumnTypeName(i) == "NUMBER")
       {        {
Line 1243  public class DBBean Line 1297  public class DBBean
         // container fields          // container fields
         try          try
         {          {
           tableRow.addElement(new Integer(resultSet.getInt(i)));            tableRow.addElement(new Double(resultSet.getDouble(i)));
           // m_columnClasses.addElement(Integer.class);            // m_columnClasses.addElement(Integer.class);
   
         } catch (Exception e)          } catch (Exception e)
Line 1356  public class DBBean Line 1410  public class DBBean
     resultSet.next();      resultSet.next();
     return resultSet.getInt(1);      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;
       }
   
 }  }

Removed from v.1.4  
changed lines
  Added in v.1.15


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>