--- FM2SQL/Attic/Convert.java 2004/02/09 09:44:49 1.26 +++ FM2SQL/Attic/Convert.java 2004/02/10 12:52:30 1.27 @@ -489,8 +489,9 @@ class Convert 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)); - java.util.TreeSet myIds; + java.util.TreeSet myIds = new TreeSet(); int deltaID = 1; + String idField = ""; dialog.thread=Thread.currentThread(); // setting user and passwd bean.setUserAndPasswd(user,passwd); @@ -539,11 +540,16 @@ class Convert bean.getConnection(); bean.makeQuery(query, 50); // @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),query); - System.out.println("ID LIST SIZE "+Math.round((double)myIds.size()/(double)numIntervalls)+" "+myIds.size()); - deltaID =(int) Math.round((double)myIds.size()/(double)numIntervalls); + idField = ids.get(tbIndex).toString(); + if (idField != "") + { + myIds = bean.getIDVector(ids.get(tbIndex).toString(), (String) names.get(tbIndex), query); + System.out.println("ID LIST SIZE " + Math.round((double) myIds.size() / (double) numIntervalls) + " " + myIds.size()); + deltaID = (int) Math.round((double) myIds.size() / (double) numIntervalls); + } } catch (Exception e) { + System.out.println(e); continue; } //beanDest.setConnection("jdbc:postgresql://erebos/test3"); @@ -645,75 +651,51 @@ class Convert command.append("?)"); PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString()); System.out.println(command); - int rowCount= myIds.size();//bean.getRowCount(query) + int rowCount= (idField!="") ? myIds.size():bean.getRowCount(query); Vector vec = new Vector(myIds); int endIndex = -1; - for(int k=0;k 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, 0); + 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(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 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); } - pstm.execute(); - //stm.executeUpdate(command.toString()); - 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; -}// to for loop - + } else + { + bean.makeQuery(query, 0); + command = writeDatainDestTable(dialog, command, j, pstm, rowCount); } + } } catch(Exception e) { System.out.println("Error while connecting to database "+ e); @@ -732,6 +714,65 @@ class Convert 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) + { + 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; + /* for(int k=0;k