Diff for /FM2SQL/Attic/Convert.java between versions 1.23 and 1.32

version 1.23, 2004/01/29 11:25:40 version 1.32, 2004/02/12 13:02:56
Line 25  class Convert Line 25  class Convert
   static String userDest="postgres",passwdDest="rogo";    static String userDest="postgres",passwdDest="rogo";
   static boolean batchRun=false;    static boolean batchRun=false;
   static Vector databases = new Vector();    static Vector databases = new Vector();
       final static int numHits = 5000;
     final static int numIntervalls = 2;
   public static void main(String args[])    public static void main(String args[])
   {    {
 /*    try  /*    try
Line 478  class Convert Line 479  class Convert
     }      }
   
   }    }
   /**
    transfers the specified array of tables  to the destination database
     and creates the table if it does not exist if it exists and mode is not append the table is dropped
   
    **/
   
   public static void  convert(String source,String destination,Vector names,Vector layouts,Vector selects,Vector creates,Vector ids,int mode) throws Exception    public static void  convert(String source,String destination,Vector names,Vector layouts,Vector selects,Vector creates,Vector ids,int mode) throws Exception
   {    {
    FM2SQL.ProgressDialog dialog = new  FM2SQL.ProgressDialog(FM2SQL.fmInstance);     FM2SQL.ProgressDialog dialog = new  FM2SQL.ProgressDialog(FM2SQL.fmInstance);
Line 489  class Convert Line 492  class Convert
    dialog.setLocation(FM2SQL.fmInstance.getLocationOnScreen().x+(FM2SQL.fmInstance.getWidth()-400)/2,FM2SQL.fmInstance.getLocationOnScreen().y+(FM2SQL.fmInstance.getHeight()-250)/2);      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));       dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
      FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));       FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
      java.util.TreeSet myIds;       java.util.TreeSet myIds = new TreeSet();
      int deltaID = 1;
      String idField = "";
    dialog.thread=Thread.currentThread();     dialog.thread=Thread.currentThread();
    // setting user and passwd      // setting user and passwd 
    bean.setUserAndPasswd(user,passwd);     bean.setUserAndPasswd(user,passwd);
Line 530  class Convert Line 535  class Convert
         }          }
         //  if ( layout!= "")          //  if ( layout!= "")
         //   query += " layout " + bean.getQC() + layout + bean.getQC();          //   query += " layout " + bean.getQC() + layout + bean.getQC();
         dialog.title.setText("Getting table data ...");          dialog.title.setText("Reading table data ...");
         dialog.table.setText(names.get(tbIndex).toString());          dialog.table.setText(names.get(tbIndex).toString());
         dialog.status.setText("Table " + (tbIndex + 1) + " of " + names.size());          dialog.status.setText("Table " + (tbIndex + 1) + " of " + names.size());
         dialog.show();          dialog.show();
Line 538  class Convert Line 543  class Convert
         bean.getConnection();          bean.getConnection();
         bean.makeQuery(query, 50);          bean.makeQuery(query, 50);
        // @TODO id Vector must be used in querys while loop over id ranges where id>=start and id<=end         // @TODO id Vector must be used in querys while loop over id ranges where id>=start and id<=end
         myIds = bean.getIDVector(ids.get(tbIndex).toString(),(String) names.get(tbIndex));         idField = ids.get(tbIndex).toString();
         System.out.println("ID LIST SIZE "+myIds.size());  
   
       } catch (Exception e)        } catch (Exception e)
       {        {
           System.out.println(e);
         continue;          continue;
       }        }
         //beanDest.setConnection("jdbc:postgresql://erebos/test3");          //beanDest.setConnection("jdbc:postgresql://erebos/test3");
Line 611  class Convert Line 616  class Convert
                   
       }        }
     }      }
     // System.out.println(names);  
     /*      
     if (idVal == "")  
           stm.executeUpdate("INSERT  INTO " + DBBean.getQC() + box.getSelectedItem() + DBBean.getQC() + " (" + DBBean.getQC() + columnName + DBBean.getQC() + ")  VALUES ('" + value + "') ");  
         else  
           stm.executeUpdate("UPDATE   " + DBBean.getQC() + box.getSelectedItem() + DBBean.getQC() + " SET  " + DBBean.getQC() + columnName + DBBean.getQC() + "='" + value + "' WHERE ID='" + idVal + "' ");  
       */  
   
     // Vector[] result2=beanDest.getQueryData(names.get(tbIndex).toString());  
     // print results to screen  
    /* for (int i = 0; i < result[1].size(); ++i)  
     {  
       //print Header  
       // System.out.println(" "+result[1].get(i)+" "+result2[1].get(i)+" "+i);  
     }*/  
     // System.out.println();  
     dialog.title.setText("Writing table data ...");      dialog.title.setText("Writing table data ...");
           
     //for (int j = 0; j < result[0].size(); ++j)    // prepare the insert statement
     int j=-1;      int j=-1;
     Vector row = null;      Vector row = null;
     command = new StringBuffer();      command = new StringBuffer();
Line 644  class Convert Line 633  class Convert
     command.append("?)");      command.append("?)");
     PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString());      PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString());
     System.out.println(command);      System.out.println(command);
     int rowCount= myIds.size();//bean.getRowCount(query)      int rowCount= (idField!="") ? myIds.size():bean.getRowCount(query);
     Vector vec = new Vector(myIds);      Vector vec = new Vector(myIds);
     for(int k=0;k<vec.size()-1000;k=k+1000)      int endIndex = -1;
       String tempQuery=query;String tempID = bean.getQC()+idField+bean.getQC();
       if (!idField.equals(""))
       {
         long startTime = System.currentTimeMillis();
         while (true)
         {
           dialog.title.setText("Retrieving next ID Vector ");
           myIds = bean.getIDVector(ids.get(tbIndex).toString(), (String) names.get(tbIndex), tempQuery, numHits);
           if(myIds.isEmpty()) break;
           vec = new Vector(myIds);
           rowCount = vec.size()/numIntervalls;
           System.out.println("ID LIST SIZE " + Math.round((double) myIds.size() / (double) numIntervalls) + " " + myIds.size());
           deltaID = (int) Math.round((double) myIds.size() / (double) numIntervalls);
   
           for (int k = 0; k < vec.size() - deltaID; k = k + deltaID)
           {
             System.out.println(vec.get(k) + " " + vec.get(k + deltaID) + " " + vec.lastElement());
             if (query.indexOf("where") > 0)
               tempQuery = query + " and " + tempID + ">=" + vec.get(k) + " and " + tempID + "<=" + vec.get(k + deltaID);
             else
               tempQuery = query + "where " + tempID + ">=" + vec.get(k) + " and " + tempID + "<=" + vec.get(k + deltaID);
             System.out.println(tempQuery);
             dialog.title.setText("Reading table data ...");
   
             bean.makeQuery(tempQuery, deltaID);
             dialog.title.setText("Writing table data ...");
   
             command = writeDatainDestTable(dialog, command, k, pstm, rowCount);
             endIndex = k + deltaID;
           }
           if ((vec.size() - 1) % numIntervalls == 0)
             System.out.println("fits");
           else
           {
             if (query.indexOf("where") > 0)
               tempQuery = query + " and " + tempID + ">=" + vec.get(endIndex) + " and " + tempID + "<=" + vec.lastElement();
             else
               tempQuery = query + "where " + tempID + ">=" + vec.get(endIndex) + " and " + tempID + "<=" + vec.lastElement();
             System.out.println(tempQuery);
             dialog.title.setText("Reading table data ...");
             bean.makeQuery(tempQuery, 0);
             dialog.title.setText("Writing table data ...");
             command = writeDatainDestTable(dialog, command, j, pstm, rowCount);
   
             System.out.println(" last intervall from " + vec.get(endIndex) + " " + vec.lastElement());
             command = writeDatainDestTable(dialog, command, endIndex, pstm, rowCount);
           }
           if (query.indexOf("where") > 0)
             tempQuery = query + " and " + tempID + ">" + vec.lastElement();
           else
           tempQuery = query + " where " + tempID + ">" + vec.lastElement();
         
         }
         long endTime = System.currentTimeMillis();
         System.out.println("Time for incremental convert elapsed "+(endTime-startTime));
       } else
     {      {
      System.out.println(vec.get(k)+" "+vec.get(k+1000));        long startTime = System.currentTimeMillis();
     
         bean.makeQuery(query, 0);
         command = writeDatainDestTable(dialog, command, j, pstm, rowCount);
         long endTime = System.currentTimeMillis();
         System.out.println("Time for old convert elapsed "+(endTime-startTime));
     
       }
     }      }
    } 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);
            FM2SQL.showErrorDialog(b.toString(), "Error occured !");
        
      }
        dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
        FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
   
        dialog.setVisible(false); 
     }
     private static StringBuffer writeDatainDestTable(FM2SQL.ProgressDialog dialog, StringBuffer command, int j, PreparedStatement pstm, int rowCount) throws Exception, SQLException
     {
       Vector row;
     while((row=bean.getNextRow())!=null)      while((row=bean.getNextRow())!=null)
     {      {
       j++;        j++;
Line 703  class Convert Line 776  class Convert
       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);      // 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 while loop    
          return command;
     }  
  } 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);  
          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 convertText(String newName)   public static String convertText(String newName)

Removed from v.1.23  
changed lines
  Added in v.1.32


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