Diff for /FM2SQL/Attic/Convert.java between versions 1.80 and 1.85

version 1.80, 2004/10/13 11:31:17 version 1.85, 2004/10/29 10:28:10
Line 18  import java.io.File; Line 18  import java.io.File;
 import java.io.FileInputStream;  import java.io.FileInputStream;
 import java.io.FileNotFoundException;  import java.io.FileNotFoundException;
 import java.io.FileOutputStream;  import java.io.FileOutputStream;
   import java.io.IOException;
 import java.io.InputStream;  import java.io.InputStream;
 import java.io.InputStreamReader;  import java.io.InputStreamReader;
 import java.io.OutputStreamWriter;  import java.io.OutputStreamWriter;
Line 94  class Convert Line 95  class Convert
   
     static boolean debug = false;      static boolean debug = false;
   
     public static void main(String args[])      static boolean isGUI = true;
       public static void main(String args[]) throws IOException
     {      {
         /*          /*
          * try { //byte[] b = "ö".getBytes("UTF-8"); //           * try { //byte[] b = "ö".getBytes("UTF-8"); //
Line 103  class Convert Line 105  class Convert
          * //System.out.println(new String(b,"UTF-8")); } catch           * //System.out.println(new String(b,"UTF-8")); } catch
          * (UnsupportedEncodingException e) { e.printStackTrace(); }           * (UnsupportedEncodingException e) { e.printStackTrace(); }
          */           */
           isGUI = false;
         FileOutputStream file = null;          FileOutputStream file = null;
         if (args.length != 1)          if (args.length != 1)
         {          {
Line 110  class Convert Line 113  class Convert
             System.exit(-1);              System.exit(-1);
         }          }
         try          try
         {          {   File temp=File.createTempFile("fm2sql",".txt");
             file = new FileOutputStream("./log.txt");              file = new FileOutputStream(temp);
         }          }
         catch (FileNotFoundException e1)          catch (FileNotFoundException e1)
         {          {
             e1.printStackTrace();              e1.printStackTrace();
         }          }
         PrintStream stream = new PrintStream(file, false);          PrintStream stream = new PrintStream(file, true);
         if (!debug)          if (!debug)
         {          {
             System.setOut(stream);              System.setOut(stream);
Line 329  class Convert Line 332  class Convert
     {      {
   
         FM2SQL.ProgressDialog dialog = null;          FM2SQL.ProgressDialog dialog = null;
         if (FM2SQL.fmInstance != null)          if (isGUI)
         {          {
             dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);              dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);
             dialog.setTitle("Conversion running ...");              dialog.setTitle("Conversion running ...");
Line 351  class Convert Line 354  class Convert
         {          {
             //bean.setConnection("jdbc:fmpro:http://141.14.237.74:8050");              //bean.setConnection("jdbc:fmpro:http://141.14.237.74:8050");
             //bean.setConnection("jdbc:postgresql://erebos/test","postgres","rogo");              //bean.setConnection("jdbc:postgresql://erebos/test","postgres","rogo");
                  System.out.println("before getConnection");
                   
             bean.setConnection(source);              bean.setConnection(source);
                  System.out.println("after getConnection");
                   
             if (names == null)              if (names == null)
                 names = bean.getTableNames();                  names = bean.getTableNames();
             // Collections.sort(names);              // Collections.sort(names);
             int tbIndex = 1;              int tbIndex = 1;
   
             // System.out.println("Start at               System.out.println("Start at table "+names.firstElement());
             // "+names.indexOf("archimedes_facsimiles"));  
             for (tbIndex = 0; tbIndex < names.size(); ++tbIndex)              for (tbIndex = 0; tbIndex < names.size(); ++tbIndex)
             {              {
                 Vector[] result = null;                  Vector[] result = null;
Line 392  class Convert Line 398  class Convert
                 }                  }
                 catch (Exception e)                  catch (Exception e)
                 {                  {
                       System.out.println("Warning exception occured \n " + e);
   
                     continue;                      continue;
                 }                  }
                 // determine destTableName from createStatement or from source                  // determine destTableName from createStatement or from source
Line 423  class Convert Line 431  class Convert
   
                 if (dialog != null)                  if (dialog != null)
                     dialog.title.setText("Updating table data ...");                      dialog.title.setText("Updating table data ...");
                     else System.out.println("Updating table data ...");
                 int j = -1;                  int j = -1;
   
                 Vector row = null;                  Vector row = null;
Line 500  class Convert Line 508  class Convert
         catch (Exception e)          catch (Exception e)
         {          {
             System.out.println("Error while connecting to database " + e);              System.out.println("Error while connecting to database " + e);
             if (dialog != null)              if (isGUI)
             {              {
                 dialog.setVisible(false);                  dialog.setVisible(false);
                 dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));                  dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
                 FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));                  FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
             }  
             java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream();              java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream();
             java.io.PrintStream stream = new java.io.PrintStream(b);              java.io.PrintStream stream = new java.io.PrintStream(b);
             stream.print(command + "\n\n");              stream.print(command + "\n\n");
             e.printStackTrace(stream);              e.printStackTrace(stream);
             FM2SQL.showErrorDialog(b.toString(), "Error occured !");              FM2SQL.showErrorDialog(b.toString(), "Error occured !");
               }
               else
               {
                   e.printStackTrace();
   
         }          }
         if (dialog != null)          }
           if (isGUI)
         {          {
             dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));              dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
             FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));              FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
   
             dialog.setVisible(false);              dialog.setVisible(false);
         }          }
   
Line 544  class Convert Line 555  class Convert
   
         FM2SQL.ProgressDialog dialog = null;          FM2SQL.ProgressDialog dialog = null;
   
         if (FM2SQL.fmInstance != null)          if (isGUI)
         {          {
             dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);              dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);
             dialog.setTitle("Conversion running ...");              dialog.setTitle("Conversion running ...");
Line 555  class Convert Line 566  class Convert
             dialog.thread = Thread.currentThread();              dialog.thread = Thread.currentThread();
             dialog.setSize(400, 250);              dialog.setSize(400, 250);
         }          }
       
                  System.out.println("connection established "+source+" "+bean.url);
   
         java.util.TreeSet myIds = new TreeSet();          java.util.TreeSet myIds = new TreeSet();
         int deltaID = 1;          int deltaID = 1;
         String idField = "";          String idField = "";
         String destTableName = "";          String destTableName = "";
         String[] fieldNames = null;          String[] fieldNames = null;
   
         if (source != null && destination != null)          if (source != null && destination != null)
         {          {
             // setting user and passwd              // setting user and passwd
Line 567  class Convert Line 582  class Convert
             // setting user and passwd              // setting user and passwd
             beanDest.setUserAndPasswd(userDest, passwdDest);              beanDest.setUserAndPasswd(userDest, passwdDest);
         }          }
   
         StringBuffer command = null;          StringBuffer command = null;
         String query = null;          String query = null;
         try          try
         {          {
   
             if (source != null)              if (source != null)
                 bean.setConnection(source);                  bean.setConnection(source);
             else              else
                 bean.setConnection(bean.url);                  bean.setConnection(bean.url);
   
             if (names == null)              if (names == null)
                 names = bean.getTableNames();                  names = bean.getTableNames();
             // Collections.sort(names);              // Collections.sort(names);
Line 620  class Convert Line 636  class Convert
                 }                  }
                 catch (Exception e)                  catch (Exception e)
                 {                  {
                     System.out.println(e);                      System.out.println("Warning exception occured \n "+e);
                       
                     continue;                      continue;
                 }                  }
                 if (destination != null)                  if (destination != null)
Line 833  class Convert Line 850  class Convert
         catch (Exception e)          catch (Exception e)
         {          {
             System.out.println("Error while connecting to database " + e);              System.out.println("Error while connecting to database " + e);
             if (dialog != null)              if (isGUI)
             {              {
                 dialog.setVisible(false);                  dialog.setVisible(false);
                 dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));                  dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
Line 850  class Convert Line 867  class Convert
   
             }              }
         }          }
         if (dialog != null)          if (isGUI)
         {          {
             dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));              dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
             FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));              FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
Line 929  class Convert Line 946  class Convert
             }              }
             pstm.execute();              pstm.execute();
             //stm.executeUpdate(command.toString());              //stm.executeUpdate(command.toString());
             if (dialog != null)              if (isGUI)
                 dialog.progress.setValue((int) (((double) (j + 1) / (double) rowCount) * 100.0));                  dialog.progress.setValue((int) (((double) (j + 1) / (double) rowCount) * 100.0));
             // System.out.println(              // System.out.println(
             // (int)(((double)(j+1)/(double)result[0].size())*100.0)+"              // (int)(((double)(j+1)/(double)result[0].size())*100.0)+"
Line 1313  class Convert Line 1330  class Convert
             String url = node.getCharacters();              String url = node.getCharacters();
             String user = node1.getCharacters();              String user = node1.getCharacters();
             String password = node2.getCharacters();              String password = node2.getCharacters();
             System.out.println(url);              System.out.println(" The url is "+url);
             database.setURL(url.trim());              database.setURL(url.trim());
             database.setUserAndPasswd(user.trim(), password.trim());              database.setUserAndPasswd(user.trim(), password.trim());
               System.out.println("huhu");
             //databases.add(database);              //databases.add(database);
             for (Iterator iter = databases.iterator(); iter.hasNext();)              for (Iterator iter = databases.iterator(); iter.hasNext();)
             {              {
                   System.out.println("huhu argghhhh"+(mode == DataBase.CONVERT_MODE)+" mode is "+mode);
                   
                 DataBase db = (DataBase) iter.next();                  DataBase db = (DataBase) iter.next();
                 if (mode == DataBase.CONVERT_MODE || mode == DataBase.APPEND_MODE)                  if (mode == DataBase.CONVERT_MODE || mode == DataBase.APPEND_MODE)
                     convertBatch(db.bean, database, db.tables, db.layouts, db.selects, db.creates, db.ids, mode, db.delimiter);                      convertBatch(db.bean, database, db.tables, db.layouts, db.selects, db.creates, db.ids, mode, db.delimiter);
                 else if (mode == DataBase.UPDATE_MODE)                  else if (mode == DataBase.UPDATE_MODE)
                 {                  {
                       System.out.println("huhu arghhh arghhh arghhh");
                       
                     Convert.user = db.bean.user;                      Convert.user = db.bean.user;
                     Convert.passwd = db.bean.passwd;                      Convert.passwd = db.bean.passwd;
                     userDest = database.user;                      userDest = database.user;
Line 1465  class Convert Line 1487  class Convert
                 else if (modeString.equals("delete"))                  else if (modeString.equals("delete"))
                     mode = DataBase.DELETE_MODE;                      mode = DataBase.DELETE_MODE;
   
                   else if (modeString.equals("synchronize"))
                       mode = DataBase.SYNCHRONIZE_MODE;
                 //   if(node3!=null)                  //   if(node3!=null)
                 // System.out.println(node3.name);                  // System.out.println(node3.name);
   
Line 1742  class Convert Line 1766  class Convert
                 modeString = "update";                  modeString = "update";
             else if (mode == DELETE_MODE)              else if (mode == DELETE_MODE)
                 modeString = "delete";                  modeString = "delete";
               else if (mode == SYNCHRONIZE_MODE)
                   modeString = "synchronize";
   
             buffr.write("      <mode>" + modeString + "</mode>\n");              buffr.write("      <mode>" + modeString + "</mode>\n");
             buffr.write("      <usenormantounicodemapper>" + useNormanToUnicodeMapper + "</usenormantounicodemapper>\n");              buffr.write("      <usenormantounicodemapper>" + useNormanToUnicodeMapper + "</usenormantounicodemapper>\n");
Line 1827  class Convert Line 1853  class Convert
     public static void delete(String source, String destination, Vector names, Vector layouts, Vector selects, Vector creates, Vector ids, int mode) throws Exception      public static void delete(String source, String destination, Vector names, Vector layouts, Vector selects, Vector creates, Vector ids, int mode) throws Exception
     {      {
         FM2SQL.ProgressDialog dialog = null;          FM2SQL.ProgressDialog dialog = null;
         if (FM2SQL.fmInstance != null)          if (isGUI)
         {          {
             dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);              dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);
             dialog.setTitle("Conversion running ...");              dialog.setTitle("Conversion running ...");
Line 2057  class Convert Line 2083  class Convert
     {      {
         System.out.println(" bin in synchronize!!!");          System.out.println(" bin in synchronize!!!");
         FM2SQL.ProgressDialog dialog = null;          FM2SQL.ProgressDialog dialog = null;
         if (FM2SQL.fmInstance != null)          if (isGUI)
         {          {
             dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);              dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);
             dialog.setTitle("Synchronize running ...");              dialog.setTitle("Synchronize running ...");
Line 2126  class Convert Line 2152  class Convert
                 }                  }
                 catch (Exception e)                  catch (Exception e)
                 {                  {
                       System.out.println("Warning exception occured \n "+e);
                       
                     continue;                      continue;
                 }                  }
                 // determine destTableName from createStatement or from source                  // determine destTableName from createStatement or from source
Line 2231  class Convert Line 2259  class Convert
                             if (dialog != null)                              if (dialog != null)
                                 dialog.title.setText("Writing table data ...");                                  dialog.title.setText("Writing table data ...");
   
                             performSynchronize(idField, vec, tempQuery, linesToDelete, linesToAppend, insPst, updPst, delPSt, deltaID, delimiter);                              performSynchronize(idField, vec, tempQuery, linesToDelete, linesToAppend, insPst, updPst, delPSt, deltaID, delimiter, dialog);
                             // System.out.println("ID LIST SIZE " +                              // System.out.println("ID LIST SIZE " +
                             // Math.round((double) myIds.size() / (double)                              // Math.round((double) myIds.size() / (double)
                             // numIntervalls) + " " + myIdsDest.size());                              // numIntervalls) + " " + myIdsDest.size());
Line 2255  class Convert Line 2283  class Convert
                             //    bean.makeQuery(tempQuery, 0);                              //    bean.makeQuery(tempQuery, 0);
                             if (dialog != null)                              if (dialog != null)
                                 dialog.title.setText("Writing table data ...");                                  dialog.title.setText("Writing table data ...");
                             performSynchronize(idField, vec, tempQuery, linesToDelete, linesToAppend, insPst, updPst, delPSt, deltaID, delimiter);                              performSynchronize(idField, vec, tempQuery, linesToDelete, linesToAppend, insPst, updPst, delPSt, deltaID, delimiter, dialog);
                             // System.out.println("ID LIST SIZE " +                              // System.out.println("ID LIST SIZE " +
                             // Math.round((double) myIds.size() / (double)                              // Math.round((double) myIds.size() / (double)
                             // numIntervalls) + " " + myIdsDest.size());                              // numIntervalls) + " " + myIdsDest.size());
Line 2268  class Convert Line 2296  class Convert
   
                     }                      }
                     String tableName = names.get(tbIndex).toString();                      String tableName = names.get(tbIndex).toString();
                       if (indexList.isEmpty())
                       {
                     IndexList idList = (IndexList) indexList.get(0);                      IndexList idList = (IndexList) indexList.get(0);
                     System.out.println("found list " + idList);                      System.out.println("found list " + idList);
                     Statement stm = beanDest.getConnection().createStatement();                      Statement stm = beanDest.getConnection().createStatement();
Line 2319  class Convert Line 2349  class Convert
                         // "+destTableName+"_"+indexField);                          // "+destTableName+"_"+indexField);
   
                     }                      }
                       }
                     //  CREATE UNIQUE INDEX title_idx ON films (title);                      //  CREATE UNIQUE INDEX title_idx ON films (title);
                     for (Iterator iter = linesToDelete.iterator(); iter.hasNext();)                      for (Iterator iter = linesToDelete.iterator(); iter.hasNext();)
                     {                      {
Line 2348  class Convert Line 2379  class Convert
             java.io.PrintStream stream = new java.io.PrintStream(b);              java.io.PrintStream stream = new java.io.PrintStream(b);
             stream.print(command + "\n\n");              stream.print(command + "\n\n");
             e.printStackTrace(stream);              e.printStackTrace(stream);
               if(dialog != null)
             FM2SQL.showErrorDialog(b.toString(), "Error occured !");              FM2SQL.showErrorDialog(b.toString(), "Error occured !");
   
         }          }
Line 2374  class Convert Line 2406  class Convert
     }      }
   
     private static void performSynchronize(String idField, Vector vec, String tempQuery, TreeSet linesToDelete, TreeSet linesToAppend, PreparedStatement insPst, PreparedStatement updPst,      private static void performSynchronize(String idField, Vector vec, String tempQuery, TreeSet linesToDelete, TreeSet linesToAppend, PreparedStatement insPst, PreparedStatement updPst,
             PreparedStatement delPSt, int deltaID, String delimiter) throws SQLException, ParseException              PreparedStatement delPSt, int deltaID, String delimiter, FM2SQL.ProgressDialog dialog) throws SQLException, ParseException,Exception
       {
           if (dialog != null)
     {      {
               dialog.progress.setValue(0);
               dialog.title.setText("Retrieving new data");
           }
   
         Vector[] vectors = bean.getQueryData(tempQuery, deltaID);          Vector[] vectors = bean.getQueryData(tempQuery, deltaID);
           int count = 0, size = vectors[0].size();
         int idIndex = vectors[1].indexOf(idField);          int idIndex = vectors[1].indexOf(idField);
         System.out.println(idIndex + " " + vectors[1] + " " + idField);          //System.out.println(idIndex + " " + vectors[1] + " " + idField);
         // todo arraylist code has to be added          // todo arraylist code has to be added
           if (dialog != null)
               dialog.title.setText("Synchronize with new data");
   
         for (Iterator iter = vectors[0].iterator(); iter.hasNext();)          for (Iterator iter = vectors[0].iterator(); iter.hasNext();)
         {          {
             Vector line = (Vector) iter.next();              Vector line = (Vector) iter.next();
Line 2416  class Convert Line 2458  class Convert
                 }                  }
                 updPst.setString(line.size() + 1, line.get(idIndex).toString());                  updPst.setString(line.size() + 1, line.get(idIndex).toString());
                 //updPst.addBatch();                  //updPst.addBatch();
                 updPst.execute();                  //updPst.execute();
               }
               if (dialog != null)
               {
                   int value = (int) Math.round(((double) count / (double) size) * 100.0);
                   dialog.progress.setValue(value);
                   count++;
             }              }
         }          }
         //updPst.executeBatch();          //updPst.executeBatch();

Removed from v.1.80  
changed lines
  Added in v.1.85


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