--- FM2SQL/Attic/Convert.java 2004/03/02 12:04:27 1.42 +++ FM2SQL/Attic/Convert.java 2004/03/09 12:34:09 1.45 @@ -274,11 +274,12 @@ class Convert names = bean.getTableNames(); // Collections.sort(names); int tbIndex = 1; - + // System.out.println("Start at "+names.indexOf("archimedes_facsimiles")); for (tbIndex = 0; tbIndex < names.size(); ++tbIndex) { Vector[] result = null; + String destTableName = ""; try { query = "select * from " + bean.getQC() + names.get(tbIndex).toString() + bean.getQC(); @@ -305,6 +306,18 @@ class Convert { continue; } + // determine destTableName from createStatement or from source table name + if(!creates.get(tbIndex).equals("")) + { + String create =creates.get(tbIndex).toString().toLowerCase(); + int fromIndex = create.indexOf("table")+5; + int toIndex = create.indexOf("("); + destTableName = create.substring(fromIndex,toIndex).replaceAll(beanDest.getQC(),"").trim(); + System.out.println("destTable "+destTableName); + + } else + destTableName = convertText(names.get(tbIndex).toString()); + //beanDest.setConnection("jdbc:postgresql://erebos/test3"); beanDest.setConnection(destination); @@ -328,7 +341,8 @@ class Convert command.append("UPDATE "); command.append(beanDest.getQC()); - command.append(convertText((String) names.get(tbIndex))); + command.append(destTableName); + //command.append(convertText((String) names.get(tbIndex))); command.append(beanDest.getQC()); command.append(" SET "); @@ -528,18 +542,21 @@ class Convert // System.out.println(beanDest.getTableNames(beanDest.getCatalogs().get(2).toString())); stm = beanDest.getConnection().createStatement(); // System.exit(0); - if (mode == Convert.DataBase.CONVERT_MODE) + + // determine destTableName from createStatement or from source table name + if(!creates.get(tbIndex).equals("")) { - if(!creates.get(tbIndex).equals("")) - { - String create =creates.get(tbIndex).toString().toLowerCase(); - int fromIndex = create.indexOf("table")+5; - int toIndex = create.indexOf("("); - destTableName = create.substring(fromIndex,toIndex).replaceAll(beanDest.getQC(),"").trim(); - System.out.println("destTable "+destTableName); + String create =creates.get(tbIndex).toString().toLowerCase(); + int fromIndex = create.indexOf("table")+5; + int toIndex = create.indexOf("("); + destTableName = create.substring(fromIndex,toIndex).replaceAll(beanDest.getQC(),"").trim(); + System.out.println("destTable "+destTableName); - } else - destTableName = convertText(names.get(tbIndex).toString()); + } else + destTableName = convertText(names.get(tbIndex).toString()); + + if (mode == Convert.DataBase.CONVERT_MODE) + { if (tables.indexOf(destTableName) >= 0) { @@ -667,7 +684,7 @@ class Convert if(dialog!=null) dialog.title.setText("Writing table data ..."); - command = writeDatainDestTable(dialog, command, k, pstm, rowCount); + command = writeDatainDestTable(dialog, command, k, pstm, rowCount,delimiter); endIndex = k + deltaID; } System.out.println(endIndex); @@ -688,7 +705,7 @@ class Convert bean.makeQuery(tempQuery, 0); if(dialog!=null) dialog.title.setText("Writing table data ..."); - command = writeDatainDestTable(dialog, command, endIndex, pstm, rowCount); + command = writeDatainDestTable(dialog, command, endIndex, pstm, rowCount,delimiter); } // prepare new query for next chunk if (query.indexOf("where") > 0) @@ -705,7 +722,7 @@ class Convert long startTime = System.currentTimeMillis(); bean.makeQuery(query, 0); - command = writeDatainDestTable(dialog, command, j, pstm, rowCount); + command = writeDatainDestTable(dialog, command, j, pstm, rowCount,delimiter); long endTime = System.currentTimeMillis(); System.out.println("Time for old convert elapsed " + (endTime - startTime)); @@ -748,7 +765,7 @@ class Convert * @throws Exception * @throws SQLException */ - private static StringBuffer writeDatainDestTable(FM2SQL.ProgressDialog dialog, StringBuffer command, int j, PreparedStatement pstm, int rowCount) throws Exception, SQLException + private static StringBuffer writeDatainDestTable(FM2SQL.ProgressDialog dialog, StringBuffer command, int j, PreparedStatement pstm, int rowCount,String delimiter) throws Exception, SQLException { Vector row; while ((row = bean.getNextRow()) != null) @@ -795,7 +812,7 @@ class Convert obj = row.get(k); if (obj instanceof ArrayList) if (obj instanceof ArrayList) - obj = formatFileMakerArray((List) obj," | "); + obj = formatFileMakerArray((List) obj,delimiter); String str = (obj == null) ? "NULL" : obj.toString(); if (!str.equals("NULL")) @@ -1275,8 +1292,8 @@ class Convert Node nodeMode = root.find("convert/source/database/mode", new int[] { 1, 1, i, 1, 1 }); Node delimiterNode =root.find("convert/source/database/delimiter", new int[] { 1, 1, i, 1, 1 }); - if(delimiterNode!=null) delimiter = delimiterNode.getCharacters(); - + if (delimiterNode != null) + delimiter = delimiterNode.getCharacters(); if (node3 == null) throw new Error("parse error database tag missing"); if (node == null) @@ -1304,7 +1321,6 @@ class Convert mode = DataBase.APPEND_MODE; else if (modeString.equals("update")) mode = DataBase.UPDATE_MODE; - // if(node3!=null) // System.out.println(node3.name); @@ -1354,7 +1370,9 @@ class Convert creates.add(""); } - databases.add(new DataBase(database, tables, layouts, selects, creates, ids, mode)); + DataBase dataBase=new DataBase(database, tables, layouts, selects, creates, ids, mode); + dataBase.delimiter=delimiter; + databases.add(dataBase); } DBBean database = new DBBean(); // parse dataBase @@ -1461,7 +1479,7 @@ class Convert Vector layouts; Vector tables; Vector ids; - String delimiter = "|"; + String delimiter = "//"; final static int CONVERT_MODE = 1; final static int APPEND_MODE = 2; final static int UPDATE_MODE = 3;