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

version 1.85, 2004/10/29 10:28:10 version 1.86, 2004/11/18 11:17:43
Line 113  class Convert Line 113  class Convert
             System.exit(-1);              System.exit(-1);
         }          }
         try          try
         {   File temp=File.createTempFile("fm2sql",".txt");          {
               File temp = File.createTempFile("fm2sql", ".txt");
             file = new FileOutputStream(temp);              file = new FileOutputStream(temp);
         }          }
         catch (FileNotFoundException e1)          catch (FileNotFoundException e1)
Line 139  class Convert Line 140  class Convert
         bean = source;          bean = source;
         beanDest = destination;          beanDest = destination;
         convert(null, null, names, layouts, selects, creates, ids, mode, delimiter);          convert(null, null, names, layouts, selects, creates, ids, mode, delimiter);
         if (true)  
             return;  
         StringBuffer command = null;  
         try  
         {  
             bean.setConnection(source.url);  
             if (names == null)  
                 names = bean.getTableNames();  
             //Collections.sort(names);  
             int tbIndex = 1;  
   
             for (tbIndex = 0; tbIndex < names.size(); ++tbIndex)  
             {  
                 Vector[] result = null;  
                 try  
                 {  
                     String query = "select * from " + bean.getQC() + names.get(tbIndex).toString() + bean.getQC();  
                     String layout = (layouts.isEmpty()) ? "" : layouts.get(tbIndex).toString();  
                     query = (selects != null) ? selects.get(tbIndex).toString() : query;  
                     //if vectors[1].get(i) != null)  
                     if (!layout.equals(""))  
                     {  
                         System.out.println("before " + query + " table" + names.get(tbIndex));  
                         layout = " layout " + bean.getQC() + layout + bean.getQC();  
                         String name = names.get(tbIndex).toString();  
                         StringBuffer queryLayout = new StringBuffer(query);  
                         queryLayout.insert(queryLayout.indexOf(name) + name.length() + 1, " " + layout);  
                         query = queryLayout.toString();  
                         System.out.println("added layout " + query);  
   
                     }  
                     System.out.println(" performing query " + query);  
                     //result = bean.getQueryData(query, null, 0);  
                     bean.getConnection();  
                     bean.makeQuery(query, 0);  
                 }  
                 catch (Exception e)  
                 {  
                     System.out.println(e.getMessage());  
                     e.printStackTrace();  
                     continue;  
                 }  
                 //beanDest.setConnection("jdbc:postgresql://erebos/test3");  
                 beanDest.setConnection(destination.url);  
   
                 Statement stm = beanDest.getConnection().createStatement();  
   
                 Vector tables = beanDest.getTableNames();  
                 //   Collections.sort(tables);  
                 System.out.println("converting table " + names.get(tbIndex) + " " + tables.indexOf(convertText((String) names.get(tbIndex)))); // "//beanDest.getTypeNames());  
                 tables = beanDest.getTableNames();  
                 // System.out.println(beanDest.getTableNames(beanDest.getCatalogs().get(2).toString()));  
                 stm = beanDest.getConnection().createStatement();  
                 // System.exit(0);  
                 if (mode == Convert.DataBase.CONVERT_MODE)  
                 {  
                     if (tables.indexOf(names.get(tbIndex)) >= 0)  
                     {  
                         stm.executeUpdate("drop table " + beanDest.getQC() + names.get(tbIndex) + beanDest.getQC());  
                         tables.remove((String) names.get(tbIndex));  
                         System.out.println("dropped table " + names.get(tbIndex));  
                     }  
                     else if (tables.indexOf(convertText(names.get(tbIndex).toString())) >= 0)  
                     {  
                         stm.executeUpdate("drop table " + beanDest.getQC() + convertText((String) names.get(tbIndex)) + beanDest.getQC());  
                         tables.remove(convertText((String) names.get(tbIndex)));  
                         System.out.println("dropped table " + names.get(tbIndex));  
                     }  
   
                     if (tables.indexOf(names.get(tbIndex)) < 0 && tables.indexOf(convertText(names.get(tbIndex).toString())) < 0)  
                     {  
                         if (creates.get(tbIndex).equals("") || creates.get(tbIndex).toString().toLowerCase().indexOf("create") < 0)  
                         {  
                             System.out.println("Warning empty or invalid create statement - creating one for you\n");  
   
                             command = new StringBuffer(50);  
                             command.append("CREATE TABLE ");  
                             command.append(beanDest.getQC());  
                             command.append(convertText((String) names.get(tbIndex)));  
                             command.append(beanDest.getQC());  
                             command.append("(");  
                             String type = null;  
                             Vector columnNames = bean.getColumnNames();  
                             for (int i = 0; i < columnNames.size() - 1; ++i)  
                             {  
                                 type = bean.metaData.getColumnTypeName(i + 1);  
                                 //   System.out.println(i+" "+result[1].get(i)+"  
                                 // "+type);  
                                 type = (type.equals("NUMBER")) ? "INT4" : type;  
                                 type = (type.equals("CONTAINER")) ? "TEXT" : type;  
   
                                 command.append(beanDest.getQC() + convertText((String) columnNames.get(i)) + beanDest.getQC() + " " + type + ", ");  
                             }  
                             type = bean.metaData.getColumnTypeName(columnNames.size());  
                             type = (type.equals("NUMBER")) ? "INT4" : type;  
                             type = (type.equals("CONTAINER")) ? "TEXT" : type;  
                             command.append(beanDest.getQC() + convertText((String) columnNames.get(columnNames.size() - 1)) + beanDest.getQC() + " " + type);  
                             command.append(" )");  
                         }  
                         else  
                             command = new StringBuffer().append(creates.get(tbIndex).toString());  
   
                         System.out.println(command);  
                         //  System.exit(0);  
                         //command.append(DBBean.getQC());  
                         stm.executeUpdate(command.toString());  
   
                     }  
                 }  
                 Vector row = null;  
                 command = new StringBuffer();  
   
                 command.append("INSERT  INTO ");  
                 command.append(beanDest.getQC());  
                 command.append(convertText((String) names.get(tbIndex)));  
                 command.append(beanDest.getQC());  
                 command.append(" values ( ");  
   
                 for (int i = 0; i < bean.getColumnNames().size() - 1; ++i)  
                     command.append("?,");  
                 command.append("?)");  
                 PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString());  
                 System.out.println(command);  
                 while ((row = bean.getNextRow()) != null)  
                 {  
                     //print rows  
                     Object obj = null;  
                     for (int k = 0; k < row.size(); ++k)  
                     {  
                         obj = row.get(k);  
                         if (obj instanceof ArrayList)  
                             obj = formatFileMakerArray((List) obj, "\n");  
                         String str = (obj == null) ? "NULL" : obj.toString();  
                         if (!str.equals("NULL"))  
                             pstm.setString(k + 1, str);  
                         else  
                             pstm.setNull(k + 1, Types.NULL);  
                     }  
                     pstm.execute();  
   
                 } // to for loop  
   
             }  
         }  
         catch (Exception e)  
         {  
             System.out.println("Error while connecting to database " + e);  
             //dialog.setVisible(false);  
             //dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  
             //FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  
             java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream();  
             java.io.PrintStream stream = new java.io.PrintStream(b);  
             stream.print(command + "\n\n");  
             e.printStackTrace(stream);  
             System.err.println(b);  
             //FM2SQL.showErrorDialog(b.toString(), "Error occured !");  
   
         }  
         //  dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  
         //FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  
   
         //  dialog.setVisible(false);  
     }      }
   
     public static String formatFileMakerArray(List list, String delimiter)      public static String formatFileMakerArray(List list, String delimiter)
Line 334  class Convert Line 173  class Convert
         FM2SQL.ProgressDialog dialog = null;          FM2SQL.ProgressDialog dialog = null;
         if (isGUI)          if (isGUI)
         {          {
             dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);              dialog = initDialog();
             dialog.setTitle("Conversion running ...");  
             dialog.title.setText("Getting table data ...");  
             dialog.setLocation(FM2SQL.fmInstance.getLocationOnScreen().x + (FM2SQL.fmInstance.getWidth() - 400) / 2, FM2SQL.fmInstance.getLocationOnScreen().y + (FM2SQL.fmInstance.getHeight() - 250) / 2);  
             dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));  
             FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));  
             dialog.thread = Thread.currentThread();  
         }          }
         // setting user and passwd          // setting user and passwd
         bean.setUserAndPasswd(user, passwd);          bean.setUserAndPasswd(user, passwd);
         // setting user and passwd          // setting user and passwd
         beanDest.setUserAndPasswd(userDest, passwdDest);          beanDest.setUserAndPasswd(userDest, passwdDest);
         if (dialog != null)  
             dialog.setSize(400, 250);  
         StringBuffer command = null;          StringBuffer command = null;
         String query = null;          String query = null;
         try          try
         {          {
             //bean.setConnection("jdbc:fmpro:http://141.14.237.74:8050");  
             //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();
Line 377  class Convert Line 205  class Convert
                     //if vectors[1].get(i) != null)                      //if vectors[1].get(i) != null)
                     if (layout != "")                      if (layout != "")
                     {                      {
                         layout = " layout " + bean.getQC() + layout + bean.getQC();                          query = addLayoutToQuery(names, query, tbIndex, layout);
                         String name = names.get(tbIndex).toString();  
                         StringBuffer queryLayout = new StringBuffer(query);  
                         queryLayout.insert(queryLayout.indexOf(name) + name.length() + 1, " " + layout);  
                         query = queryLayout.toString();  
                         System.out.println("added layout  " + query);  
   
                     }                      }
                     if (dialog != null)                      if (dialog != null)
                     {                      {
                         dialog.title.setText("Getting table data ...");                          prepareDialogforUse(names, dialog, tbIndex);
                         dialog.table.setText(names.get(tbIndex).toString());  
                         dialog.status.setText("Table " + (tbIndex + 1) + " of " + names.size());  
                         dialog.show();  
                     }                      }
                     bean.getConnection();                      bean.getConnection();
                     bean.makeQuery(query, 0);                      bean.makeQuery(query, 0);
Line 416  class Convert Line 236  class Convert
                 else                  else
                     destTableName = convertText(names.get(tbIndex).toString());                      destTableName = convertText(names.get(tbIndex).toString());
   
                 //beanDest.setConnection("jdbc:postgresql://erebos/test3");  
                 beanDest.setConnection(destination);                  beanDest.setConnection(destination);
   
                 Statement stm = beanDest.getConnection().createStatement();                  Statement stm = beanDest.getConnection().createStatement();
   
                 Vector tables = beanDest.getTableNames();                  Vector tables = beanDest.getTableNames();
                 // Collections.sort(tables);  
                 System.out.println(names.get(tbIndex) + " " + tables.indexOf(convertText((String) names.get(tbIndex)))); // "//beanDest.getTypeNames());                  System.out.println(names.get(tbIndex) + " " + tables.indexOf(convertText((String) names.get(tbIndex)))); // "//beanDest.getTypeNames());
                 tables = beanDest.getTableNames();                  tables = beanDest.getTableNames();
                 // System.out.println(beanDest.getTableNames(beanDest.getCatalogs().get(2).toString()));  
                 stm = beanDest.getConnection().createStatement();                  stm = beanDest.getConnection().createStatement();
                 // System.exit(0);  
   
                 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 ...");                  else
                       System.out.println("Updating table data ...");
                 int j = -1;                  int j = -1;
   
                 Vector row = null;                  Vector row = null;
Line 458  class Convert Line 276  class Convert
                     j++;                      j++;
                     //print rows                      //print rows
                     Object obj = null;                      Object obj = null;
                     /*  
                      * for(int k=0;k <row.size()-1;++k) { obj = row.get(k);  
                      * //System.out.println("row "+obj+" "+k); if(obj!=null&&!(obj  
                      * instanceof ArrayList))  
                      * command.append("'"+convertUml(obj.toString())+"',"); else  
                      * if(obj!=null&& obj instanceof ArrayList)  
                      * command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"',");  
                      * else command.append("NULL,"); } obj = row.get(row.size() - 1); if  
                      * (obj != null && !(obj instanceof ArrayList))  
                      * command.append("'"+convertUml(obj.toString())+"')"); else  
                      * if(obj!=null&& obj instanceof ArrayList)  
                      * command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"')");  
                      * //command.append(obj.toString()+")"); else command.append("NULL)");  
                      */  
                     //command.append("'"+row.get(row.size()-1)+"')");  
                     //command.append(" )");  
                     //  for(int k=0;k<row.size();++k)  
                     // System.out.println();  
                     //   System.out.println(command+" "+j+" "+row.size()+" "+  
                     // ((Vector)result2[0].get(j)).size());  
                     // System.out.println(command);  
                     for (int k = 0; k < row.size(); ++k)                      for (int k = 0; k < row.size(); ++k)
                     {                      {
                         obj = row.get(k);                          obj = row.get(k);
Line 491  class Convert Line 288  class Convert
                             pstm.setNull(k + 1, Types.NULL);                              pstm.setNull(k + 1, Types.NULL);
                     }                      }
                     pstm.setString(row.size() + 1, row.get(idIndex).toString());                      pstm.setString(row.size() + 1, row.get(idIndex).toString());
                     //System.out.println(pstm.toString());  
                     // System.exit(0);  
                     pstm.execute();                      pstm.execute();
                     //stm.executeUpdate(command.toString());  
                     if (dialog != null)                      if (dialog != null)
                         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(  
                     // (int)(((double)(j+1)/(double)result[0].size())*100.0)+"  
                     // "+result[0].size()+" "+j);  
                     command = null;                      command = null;
                 } // to for loop                  } // to for loop
   
Line 510  class Convert Line 301  class Convert
             System.out.println("Error while connecting to database " + e);              System.out.println("Error while connecting to database " + e);
             if (isGUI)              if (isGUI)
             {              {
                 dialog.setVisible(false);                  showExceptionDialog(dialog, command, e);
                 dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  
                 FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  
                 java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream();  
                 java.io.PrintStream stream = new java.io.PrintStream(b);  
                 stream.print(command + "\n\n");  
                 e.printStackTrace(stream);  
                 FM2SQL.showErrorDialog(b.toString(), "Error occured !");  
             }              }
             else              else
             {              {
                 e.printStackTrace();                  e.printStackTrace();
   
             }              }
         }          } finally
           {
         if (isGUI)          if (isGUI)
         {          {
                   resetGUI(dialog);
               }
           }
       }
   
       /**
        * @param dialog
        */
       private static void resetGUI(FM2SQL.ProgressDialog dialog)
       {
             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);
         }          }
   
       /**
        * @param dialog
        * @param command
        * @param e
        */
       private static void showExceptionDialog(FM2SQL.ProgressDialog dialog, StringBuffer command, Exception e)
       {
           dialog.setVisible(false);
           dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
           FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
           java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream();
           java.io.PrintStream stream = new java.io.PrintStream(b);
           stream.print(command + "\n\n");
           e.printStackTrace(stream);
           FM2SQL.showErrorDialog(b.toString(), "Error occured !");
       }
   
       /**
        * @return
        */
       private static FM2SQL.ProgressDialog initDialog()
       {
           FM2SQL.ProgressDialog dialog;
           dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);
           dialog.setTitle("Conversion running ...");
           dialog.title.setText("Getting table data ...");
           dialog.setLocation(FM2SQL.fmInstance.getLocationOnScreen().x + (FM2SQL.fmInstance.getWidth() - 400) / 2, FM2SQL.fmInstance.getLocationOnScreen().y + (FM2SQL.fmInstance.getHeight() - 250) / 2);
           dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
           FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
           dialog.thread = Thread.currentThread();
           dialog.setSize(420, 250);
           return dialog;
     }      }
   
     /**      /**
Line 557  class Convert Line 384  class Convert
   
         if (isGUI)          if (isGUI)
         {          {
             dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);              dialog = initDialog();
             dialog.setTitle("Conversion running ...");  
             dialog.title.setText("Getting table data ...");  
             dialog.setLocation(FM2SQL.fmInstance.getLocationOnScreen().x + (FM2SQL.fmInstance.getWidth() - 400) / 2, FM2SQL.fmInstance.getLocationOnScreen().y + (FM2SQL.fmInstance.getHeight() - 250) / 2);  
             dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));  
             FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));  
             dialog.thread = Thread.currentThread();  
             dialog.setSize(400, 250);  
         }          }
           
                System.out.println("connection established "+source+" "+bean.url);                 System.out.println("connection established "+source+" "+bean.url);
Line 594  class Convert Line 414  class Convert
                 bean.setConnection(bean.url);                  bean.setConnection(bean.url);
             if (names == null)              if (names == null)
                 names = bean.getTableNames();                  names = bean.getTableNames();
             // Collections.sort(names);  
             int tbIndex = 1;              int tbIndex = 1;
   
             // System.out.println("Start at  
             // "+names.indexOf("archimedes_facsimiles"));  
             for (tbIndex = 0; tbIndex < names.size(); ++tbIndex)              for (tbIndex = 0; tbIndex < names.size(); ++tbIndex)
             {              {
                 Vector[] result = null;                  Vector[] result = null;
                 try                  try
                 {                  {
                     query = "select * from " + bean.getQC() + names.get(tbIndex).toString() + bean.getQC();  
                     String layout = (layouts.isEmpty()) ? "" : layouts.get(tbIndex).toString();                      String layout = (layouts.isEmpty()) ? "" : layouts.get(tbIndex).toString();
                     query = (selects != null) ? selects.get(tbIndex).toString() : query;                      query = (selects != null) ? selects.get(tbIndex).toString() : "select * from " + bean.getQC() + names.get(tbIndex).toString() + bean.getQC();
                     //if vectors[1].get(i) != null)  
                     if (layout != "")                      if (layout != "")
                     {                      {
                         layout = " layout " + bean.getQC() + layout + bean.getQC();                          query = addLayoutToQuery(names, query, tbIndex, layout);
                         String name = names.get(tbIndex).toString();  
                         StringBuffer queryLayout = new StringBuffer(query);  
                         queryLayout.insert(queryLayout.indexOf(name) + name.length() + 1, " " + layout);  
                         query = queryLayout.toString();  
                         System.out.println("added layout  " + query);  
   
                     }                      }
                     //  if ( layout!= "")  
                     //   query += " layout " + bean.getQC() + layout +  
                     // bean.getQC();  
                     if (dialog != null)                      if (dialog != null)
                     {                      {
                         dialog.title.setText("Reading table data ...");                          prepareDialogforUse(names, dialog, tbIndex);
                         dialog.table.setText(names.get(tbIndex).toString());  
                         dialog.status.setText("Table " + (tbIndex + 1) + " of " + names.size());  
                         dialog.show();  
                     }                      }
                     //result = bean.getQueryData(query, dialog, 0);  
                     bean.getConnection();                      bean.getConnection();
                     bean.makeQuery(query, 50);                      bean.makeQuery(query, 50);
                     idField = ids.get(tbIndex).toString();                      idField = ids.get(tbIndex).toString();
Line 669  class Convert Line 473  class Convert
                         System.out.println("dropped table" + destTableName);                          System.out.println("dropped table" + destTableName);
   
                     }                      }
                     /*                      if ((tables.indexOf(destTableName) < 0))
                      * if(destTableName.equals("")) if (tables.indexOf(names.get(tbIndex)) >=  
                      * 0) { stm.executeUpdate("drop table " + beanDest.getQC() +  
                      * names.get(tbIndex) + beanDest.getQC()); tables.remove((String)  
                      * names.get(tbIndex)); System.out.println("dropped table" +  
                      * names.get(tbIndex)); } else if  
                      * (tables.indexOf(convertText(names.get(tbIndex).toString())) >= 0) {  
                      * stm.executeUpdate("drop table " + beanDest.getQC() +  
                      * convertText((String) names.get(tbIndex)) + beanDest.getQC());  
                      * tables.remove(convertText((String) names.get(tbIndex)));  
                      * System.out.println("dropped table" + names.get(tbIndex)); }  
                      */  
                     if ((tables.indexOf(destTableName) < 0)) //&&  
                     // tables.indexOf(names.get(tbIndex))  
                     // < 0 &&  
                     // tables.indexOf(convertText(names.get(tbIndex).toString()))  
                     // < 0 )  
                     {                      {
   
                         if (creates.get(tbIndex).equals("") || creates.get(tbIndex).toString().toLowerCase().indexOf("create") < 0)                          if (creates.get(tbIndex).equals("") || creates.get(tbIndex).toString().toLowerCase().indexOf("create") < 0)
Line 716  class Convert Line 504  class Convert
                             command.append(beanDest.getQC() + convertText((String) columnNames.get(columnNames.size() - 1)) + beanDest.getQC() + " " + type);                              command.append(beanDest.getQC() + convertText((String) columnNames.get(columnNames.size() - 1)) + beanDest.getQC() + " " + type);
                             command.append(" )");                              command.append(" )");
   
                             // System.out.println(command);  
                             //  System.exit(0);  
                             //command.append(DBBean.getQC());  
                         }                          }
                         else                          else
                             command = new StringBuffer().append(creates.get(tbIndex).toString().toLowerCase());                              command = new StringBuffer().append(creates.get(tbIndex).toString().toLowerCase());
Line 736  class Convert Line 521  class Convert
   
                 command.append("INSERT  INTO ");                  command.append("INSERT  INTO ");
                 command.append(beanDest.getQC());                  command.append(beanDest.getQC());
                 command.append(destTableName); //convertText((String)                  command.append(destTableName);
                 // names.get(tbIndex)));  
                 command.append(beanDest.getQC());                  command.append(beanDest.getQC());
                 command.append(" (");                  command.append(" (");
                 for (int i = 0; i < fieldNames.length; i++)                  for (int i = 0; i < fieldNames.length; i++)
Line 845  class Convert Line 629  class Convert
                     System.out.println("Time for old convert elapsed " + (endTime - startTime));                      System.out.println("Time for old convert elapsed " + (endTime - startTime));
   
                 }                  }
                   if (isGUI)
                       resetGUI(dialog);
             }              }
         }          }
         catch (Exception e)          catch (Exception e)
Line 852  class Convert Line 638  class Convert
             System.out.println("Error while connecting to database " + e);              System.out.println("Error while connecting to database " + e);
             if (isGUI)              if (isGUI)
             {              {
                 dialog.setVisible(false);                  showExceptionDialog(dialog, command, e);
                 dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));                  resetGUI(dialog);
                 FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  
                 java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream();  
                 java.io.PrintStream stream = new java.io.PrintStream(b);  
                 stream.print(command + "\n\n");  
                 e.printStackTrace(stream);  
                 FM2SQL.showErrorDialog(b.toString(), "Error occured !");  
             }              }
             else              else
             {              {
Line 867  class Convert Line 647  class Convert
   
             }              }
         }          }
         if (isGUI)  
       }
   
       /**
        * @param names
        * @param dialog
        * @param tbIndex
        */
       private static void prepareDialogforUse(Vector names, FM2SQL.ProgressDialog dialog, int tbIndex)
         {          {
             dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));          dialog.title.setText("Reading table data ...");
             FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));          dialog.table.setText(names.get(tbIndex).toString());
             dialog.setVisible(false);          dialog.status.setText("Table " + (tbIndex + 1) + " of " + names.size());
           dialog.show();
         }          }
   
       /**
        * @param names
        * @param query
        * @param tbIndex
        * @param layout
        * @return
        */
       private static String addLayoutToQuery(Vector names, String query, int tbIndex, String layout)
       {
           layout = " layout " + bean.getQC() + layout + bean.getQC();
           String name = names.get(tbIndex).toString();
           StringBuffer queryLayout = new StringBuffer(query);
           queryLayout.insert(queryLayout.indexOf(name) + name.length() + 1, " " + layout);
           query = queryLayout.toString();
           System.out.println("added layout  " + query);
           return query;
     }      }
   
     /**      /**
Line 897  class Convert Line 703  class Convert
         while ((row = bean.getNextRow()) != null)          while ((row = bean.getNextRow()) != null)
         {          {
             j++;              j++;
             // row = (Vector) result[0].get(j);  
             /*  
              * command = new StringBuffer();  
              *   
              * command.append("INSERT INTO "); command.append(beanDest.getQC());  
              * command.append(convertText((String) names.get(tbIndex)));  
              * command.append(beanDest.getQC()); command.append(" values ( ");  
              */  
             //print rows  
             Object obj = null;              Object obj = null;
             /*  
              * for(int k=0;k <row.size()-1;++k) { obj = row.get(k);  
              * //System.out.println("row "+obj+" "+k); if(obj!=null&&!(obj instanceof  
              * ArrayList)) command.append("'"+convertUml(obj.toString())+"',"); else  
              * if(obj!=null&& obj instanceof ArrayList)  
              * command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"',");  
              * else command.append("NULL,"); } obj = row.get(row.size() - 1); if (obj !=  
              * null && !(obj instanceof ArrayList))  
              * command.append("'"+convertUml(obj.toString())+"')"); else  
              * if(obj!=null&& obj instanceof ArrayList)  
              * command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"')");  
              * //command.append(obj.toString()+")"); else command.append("NULL)");  
              */  
             //command.append("'"+row.get(row.size()-1)+"')");  
             //command.append(" )");  
             //  for(int k=0;k<row.size();++k)  
             // System.out.println();  
             //   System.out.println(command+" "+j+" "+row.size()+" "+  
             // ((Vector)result2[0].get(j)).size());  
             // System.out.println(command);  
             for (int k = 0; k < row.size(); ++k)              for (int k = 0; k < row.size(); ++k)
             {              {
                 obj = row.get(k);                  obj = row.get(k);
Line 945  class Convert Line 722  class Convert
                     pstm.setNull(k + 1, Types.NULL);                      pstm.setNull(k + 1, Types.NULL);
             }              }
             pstm.execute();              pstm.execute();
             //stm.executeUpdate(command.toString());  
             if (isGUI)              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(  
             // (int)(((double)(j+1)/(double)result[0].size())*100.0)+"  
             // "+result[0].size()+" "+j);  
             command = null;              command = null;
         } // to while loop          } // to while loop
         return command;          return command;
Line 1333  class Convert Line 1106  class Convert
             System.out.println(" The url is "+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;
Line 1363  class Convert Line 1132  class Convert
                     synchronize(db.bean.url, database.url, db.tables, db.layouts, db.selects, db.creates, db.ids, mode, db.delimiter, new Vector(db.htIndex.values()));                      synchronize(db.bean.url, database.url, db.tables, db.layouts, db.selects, db.creates, db.ids, mode, db.delimiter, new Vector(db.htIndex.values()));
                 }                  }
             }              }
             // printContents(node3);  
             //   FM2SQL.fmInstance=new FM2SQL();  
         }          }
         catch (Exception e)          catch (Exception e)
         {          {
Line 1562  class Convert Line 1330  class Convert
             database.setURL(url.trim());              database.setURL(url.trim());
             database.setUserAndPasswd(user.trim(), password.trim());              database.setUserAndPasswd(user.trim(), password.trim());
             databases.add(new DataBase(database, null, null, null, null, null, 0));              databases.add(new DataBase(database, null, null, null, null, null, 0));
             //databases.add(database);  
             /*  
              * for (Iterator iter = databases.iterator(); iter.hasNext();) { DataBase  
              * db = (DataBase) iter.next();  
              * convertBatch(db.bean,database,db.tables,db.layouts,db.selects,db.creates); }  
              */  
             // printContents(node3);  
             //   FM2SQL.fmInstance=new FM2SQL();  
         }          }
         catch (Exception e)          catch (Exception e)
         {          {
Line 1855  class Convert Line 1615  class Convert
         FM2SQL.ProgressDialog dialog = null;          FM2SQL.ProgressDialog dialog = null;
         if (isGUI)          if (isGUI)
         {          {
             dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);              dialog = initDialog();
             dialog.setTitle("Conversion running ...");  
             dialog.title.setText("Getting table data ...");  
             dialog.setLocation(FM2SQL.fmInstance.getLocationOnScreen().x + (FM2SQL.fmInstance.getWidth() - 400) / 2, FM2SQL.fmInstance.getLocationOnScreen().y + (FM2SQL.fmInstance.getHeight() - 250) / 2);  
             dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));  
             FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));  
             dialog.thread = Thread.currentThread();  
         }          }
         // setting user and passwd          // setting user and passwd
         bean.setUserAndPasswd(user, passwd);          bean.setUserAndPasswd(user, passwd);
         // setting user and passwd          // setting user and passwd
         beanDest.setUserAndPasswd(userDest, passwdDest);          beanDest.setUserAndPasswd(userDest, passwdDest);
         if (dialog != null)  
             dialog.setSize(400, 250);  
         StringBuffer command = null;          StringBuffer command = null;
         String query = null;          String query = null;
         try          try
Line 2003  class Convert Line 1755  class Convert
                         command.append("DELETE FROM");                          command.append("DELETE FROM");
                         command.append(beanDest.getQC());                          command.append(beanDest.getQC());
                         command.append(destTableName);                          command.append(destTableName);
                         //command.append(convertText((String)  
                         // names.get(tbIndex)));  
                         command.append(beanDest.getQC());                          command.append(beanDest.getQC());
                         int size = bean.getColumnNames().size();                          int size = bean.getColumnNames().size();
                         command.append("WHERE " + convertText(ids.get(tbIndex).toString()) + " =  ?");                          command.append("WHERE " + convertText(ids.get(tbIndex).toString()) + " =  ?");
                         PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString());                          PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString());
                         System.out.println(command + " " + tbIndex);                          System.out.println(command + " " + tbIndex);
                         //int rowCount = bean.getRowCount(query);  
                         //        int idIndex =  
                         // bean.getColumnNames().indexOf(ids.get(tbIndex));  
                         while (true)                          while (true)
                         {                          {
   
Line 2023  class Convert Line 1770  class Convert
                             pstm.setString(1, linesToDelete.get(j).toString());                              pstm.setString(1, linesToDelete.get(j).toString());
                             System.out.println(pstm.toString());                              System.out.println(pstm.toString());
                             pstm.execute();                              pstm.execute();
                             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));
                             command = null;                              command = null;
                         }                          }
Line 2041  class Convert Line 1788  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);                  showExceptionDialog(dialog, command, e);
                 dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));                  resetGUI(dialog);
                 FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  
             }  
             java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream();  
             java.io.PrintStream stream = new java.io.PrintStream(b);  
             stream.print(command + "\n\n");  
             e.printStackTrace(stream);  
             FM2SQL.showErrorDialog(b.toString(), "Error occured !");  
   
         }          }
         if (dialog != null)              else
         {          {
             dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));                  e.printStackTrace();
             FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));              }
   
             dialog.setVisible(false);  
         }          }
     } // to method      } // to method
   
Line 2085  class Convert Line 1822  class Convert
         FM2SQL.ProgressDialog dialog = null;          FM2SQL.ProgressDialog dialog = null;
         if (isGUI)          if (isGUI)
         {          {
             dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance, bean);              dialog = initDialog();
             dialog.setTitle("Synchronize running ...");              dialog.setTitle("Synchronize running ...");
             dialog.title.setText("Getting table data ...");  
             dialog.setLocation(FM2SQL.fmInstance.getLocationOnScreen().x + (FM2SQL.fmInstance.getWidth() - 400) / 2, FM2SQL.fmInstance.getLocationOnScreen().y + (FM2SQL.fmInstance.getHeight() - 250) / 2);  
             dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));  
             FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));  
             dialog.thread = Thread.currentThread();  
         }          }
         // setting user and passwd          // setting user and passwd
         bean.setUserAndPasswd(user, passwd);          bean.setUserAndPasswd(user, passwd);
         // setting user and passwd          // setting user and passwd
         beanDest.setUserAndPasswd(userDest, passwdDest);          beanDest.setUserAndPasswd(userDest, passwdDest);
         if (dialog != null)  
             dialog.setSize(400, 250);  
         StringBuffer command = null;          StringBuffer command = null;
         String query = null;          String query = null;
         try          try
         {          {
             //bean.setConnection("jdbc:fmpro:http://141.14.237.74:8050");  
             //bean.setConnection("jdbc:postgresql://erebos/test","postgres","rogo");  
             bean.setConnection(source);              bean.setConnection(source);
             if (names == null)              if (names == null)
                 names = bean.getTableNames();                  names = bean.getTableNames();
             // Collections.sort(names);  
             int tbIndex = 1;              int tbIndex = 1;
   
             // System.out.println("Start at  
             // "+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 2130  class Convert Line 1856  class Convert
                     //if vectors[1].get(i) != null)                      //if vectors[1].get(i) != null)
                     if (!layout.equals(""))                      if (!layout.equals(""))
                     {                      {
                         layout = " layout " + bean.getQC() + layout + bean.getQC();                          query = addLayoutToQuery(names, query, tbIndex, layout);
                         String name = names.get(tbIndex).toString();  
                         StringBuffer queryLayout = new StringBuffer(query);  
                         queryLayout.insert(queryLayout.indexOf(name) + name.length() + 1, " " + layout);  
                         query = queryLayout.toString();  
                         System.out.println("added layout  " + query);  
   
                     }                      }
                     if (dialog != null)                      if (dialog != null)
                     {                      {
                         dialog.title.setText("Getting table data ...");                          prepareDialogforUse(names, dialog, tbIndex);
                         dialog.table.setText(names.get(tbIndex).toString());  
                         dialog.status.setText("Table " + (tbIndex + 1) + " of " + names.size());  
                         dialog.show();  
                     }                      }
                     bean.getConnection();                      bean.getConnection();
                     bean.makeQuery(query, 50);                      bean.makeQuery(query, 50);
Line 2369  class Convert Line 2087  class Convert
         {          {
             System.out.println("Error while connecting to database " + e);              System.out.println("Error while connecting to database " + e);
             e.printStackTrace();              e.printStackTrace();
             if (dialog != null)              if (isGUI)
             {                  showExceptionDialog(dialog, command, e);
                 dialog.setVisible(false);  
                 dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  
                 FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  
             }  
             java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream();  
             java.io.PrintStream stream = new java.io.PrintStream(b);  
             stream.print(command + "\n\n");  
             e.printStackTrace(stream);  
             if(dialog != null)  
             FM2SQL.showErrorDialog(b.toString(), "Error occured !");  
   
         }          }
         if (dialog != null)          if (isGUI)
         {          {
             dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));              resetGUI(dialog);
             FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));  
   
             dialog.setVisible(false);  
         }          }
     }      }
   
Line 4058  class Convert Line 3762  class Convert
         command.append("UPDATE ");          command.append("UPDATE ");
         command.append(beanDest.getQC());          command.append(beanDest.getQC());
         command.append(destTableName);          command.append(destTableName);
         //command.append(convertText((String) names.get(tbIndex)));  
         command.append(beanDest.getQC());          command.append(beanDest.getQC());
         command.append(" SET  ");          command.append(" SET  ");
   

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


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