version 1.13, 2005/05/02 12:45:36
|
version 1.14, 2005/09/06 10:53:16
|
Line 137 class Convert
|
Line 137 class Convert
|
|
|
static Vector postSQLCommands = new Vector(); |
static Vector postSQLCommands = new Vector(); |
|
|
static final String versionID = new String("FM2SQL Version 0.9.6b\n"); |
static final String versionID = new String("FM2SQL Version 0.9.8b\n"); |
|
|
private static boolean noError = false; |
private static boolean noError = false; |
|
|
Line 656 class Convert
|
Line 656 class Convert
|
for (int k = 0; k < vec.size() - deltaID; k = k + deltaID) |
for (int k = 0; k < vec.size() - deltaID; k = k + deltaID) |
{ |
{ |
System.out.println(vec.get(k) + " " + vec.get(k + deltaID) + " " + vec.lastElement()); |
System.out.println(vec.get(k) + " " + vec.get(k + deltaID) + " " + vec.lastElement()); |
if (query.indexOf("where") > 0) |
if (query.toLowerCase().indexOf("where") > 0) |
tempQuery = query + " and " + tempID + ">='" + vec.get(k) + "' and " + tempID |
tempQuery = query + " and " + tempID + ">='" + vec.get(k) + "' and " + tempID |
+ "<='" + vec.get(k + deltaID) + "'"; |
+ "<='" + vec.get(k + deltaID) + "'"; |
else |
else |
Line 682 class Convert
|
Line 682 class Convert
|
System.out.println(" last intervall from " + vec.get(endIndex) + " " |
System.out.println(" last intervall from " + vec.get(endIndex) + " " |
+ vec.lastElement()); |
+ vec.lastElement()); |
|
|
if (query.indexOf("where") > 0) |
if (query.toLowerCase().indexOf("where") > 0) |
tempQuery = query + " and " + tempID + ">='" + vec.get(endIndex) + "' and " |
tempQuery = query + " and " + tempID + ">='" + vec.get(endIndex) + "' and " |
+ tempID + "<='" + vec.lastElement() + "'"; |
+ tempID + "<='" + vec.lastElement() + "'"; |
else |
else |
Line 697 class Convert
|
Line 697 class Convert
|
command = writeDatainDestTable(dialog, command, endIndex, pstm, rowCount, delimiter); |
command = writeDatainDestTable(dialog, command, endIndex, pstm, rowCount, delimiter); |
} |
} |
// prepare new query for next chunk |
// prepare new query for next chunk |
if (query.indexOf("where") > 0) |
if (query.toLowerCase().indexOf("where") > 0) |
tempQuery = query + " and " + tempID + ">'" + vec.lastElement() + "'"; |
tempQuery = query + " and " + tempID + ">'" + vec.lastElement() + "'"; |
else |
else |
tempQuery = query + " where " + tempID + ">'" + vec.lastElement() + "'"; |
tempQuery = query + " where " + tempID + ">'" + vec.lastElement() + "'"; |
Line 1119 class Convert
|
Line 1119 class Convert
|
passwdDest = database.passwd; |
passwdDest = database.passwd; |
|
|
synchronize(db.bean.url, database.url, db.tables, db.layouts, db.selects, db.creates, |
synchronize(db.bean.url, database.url, db.tables, db.layouts, db.selects, db.creates, |
db.ids, mode, db.delimiter, new Vector(db.htIndex.values())); |
db.ids, mode, db.delimiter, new Vector(db.htIndex.values()), db.destIDs); |
} |
} |
for (Iterator iterator = db.postCommands.iterator(); iterator.hasNext();) |
for (Iterator iterator = db.postCommands.iterator(); iterator.hasNext();) |
{ |
{ |
Line 1176 class Convert
|
Line 1176 class Convert
|
Vector selects = new Vector(); |
Vector selects = new Vector(); |
Vector creates = new Vector(); |
Vector creates = new Vector(); |
Vector ids = new Vector(); |
Vector ids = new Vector(); |
|
Vector destIDs = new Vector(); |
|
|
Vector preSQLCommands = new Vector(); |
Vector preSQLCommands = new Vector(); |
Vector postSQLCommands = new Vector(); |
Vector postSQLCommands = new Vector(); |
|
|
Line 1198 class Convert
|
Line 1200 class Convert
|
selects = new Vector(); |
selects = new Vector(); |
creates = new Vector(); |
creates = new Vector(); |
ids = new Vector(); |
ids = new Vector(); |
|
destIDs = new Vector(); |
|
|
preSQLCommands = new Vector(); |
preSQLCommands = new Vector(); |
postSQLCommands = new Vector(); |
postSQLCommands = new Vector(); |
|
|
Line 1301 class Convert
|
Line 1305 class Convert
|
String name = (String) node4.attributes.get("name"); |
String name = (String) node4.attributes.get("name"); |
String layout = (String) node4.attributes.get("layout"); |
String layout = (String) node4.attributes.get("layout"); |
String id = (String) node4.attributes.get("id"); |
String id = (String) node4.attributes.get("id"); |
|
String destID = (String) node4.attributes.get("targetID"); |
System.out.println("id was " + id); |
System.out.println("id was " + id); |
|
System.out.println("targetID was " + destID); |
|
|
if (name == null) |
if (name == null) |
throw new Error("parse error required table tag attribute name missing"); |
throw new Error("parse error required table tag attribute name missing"); |
Line 1309 class Convert
|
Line 1315 class Convert
|
layout = ""; |
layout = ""; |
if (id == null) |
if (id == null) |
id = ""; |
id = ""; |
|
if (destID == null) |
|
destID = id ; |
|
|
if (name.equals("")) |
if (name.equals("")) |
throw new Error("parse error table tag attribute must not be empty"); |
throw new Error("parse error table tag attribute must not be empty"); |
tables.add(name.intern()); |
tables.add(name.intern()); |
layouts.add(layout.intern()); |
layouts.add(layout.intern()); |
ids.add(id.intern()); |
ids.add(id.intern()); |
|
destIDs.add(destID.intern()); |
String query = (node5 == null) ? "" : node5.getCharacters(); |
String query = (node5 == null) ? "" : node5.getCharacters(); |
if (query.equals("")) |
if (query.equals("")) |
System.err.println("Warning empty select tag or select tag missing !!"); |
System.err.println("Warning empty select tag or select tag missing !!"); |
Line 1330 class Convert
|
Line 1340 class Convert
|
dataBase.delimiter = delimiter; |
dataBase.delimiter = delimiter; |
dataBase.preCommands = new Vector(preSQLCommands); |
dataBase.preCommands = new Vector(preSQLCommands); |
dataBase.postCommands = new Vector(postSQLCommands); |
dataBase.postCommands = new Vector(postSQLCommands); |
|
dataBase.destIDs = destIDs; |
databases.add(dataBase); |
databases.add(dataBase); |
} |
} |
DBBean database = new DBBean(); |
DBBean database = new DBBean(); |
Line 1523 class Convert
|
Line 1534 class Convert
|
*/ |
*/ |
public static class DataBase |
public static class DataBase |
{ |
{ |
|
|
DBBean bean; |
DBBean bean; |
|
|
Vector creates; |
Vector creates; |
Line 1534 class Convert
|
Line 1546 class Convert
|
Vector tables = new Vector(); |
Vector tables = new Vector(); |
|
|
Vector ids; |
Vector ids; |
|
Vector destIDs; |
|
|
String delimiter = "//"; |
String delimiter = "//"; |
|
|
Line 1880 class Convert
|
Line 1893 class Convert
|
command = null; |
command = null; |
} |
} |
// prepare new query for next chunk |
// prepare new query for next chunk |
if (query.indexOf("where") > 0) |
if (query.toLowerCase().indexOf("where") > 0) |
tempQuery = query + " and " + tempID + ">'" + vec.lastElement() + "'"; |
tempQuery = query + " and " + tempID + ">'" + vec.lastElement() + "'"; |
else |
else |
tempQuery = query + " where " + tempID + ">'" + vec.lastElement() + "'"; |
tempQuery = query + " where " + tempID + ">'" + vec.lastElement() + "'"; |
Line 1905 class Convert
|
Line 1918 class Convert
|
|
|
/** |
/** |
* synchronize method based on delete method code |
* synchronize method based on delete method code |
* |
|
* @param source |
* @param source |
* @param destination |
* @param destination |
* @param names |
* @param names |
Line 1914 class Convert
|
Line 1926 class Convert
|
* @param creates |
* @param creates |
* @param ids |
* @param ids |
* @param mode |
* @param mode |
|
* @param destIDs TODO |
|
* |
* @throws Exception |
* @throws Exception |
*/ |
*/ |
// TODO implement append,update and delete in one method |
// TODO implement append,update and delete in one method |
// TODO using id based algorithm |
// TODO using id based algorithm |
public static void synchronize(String source, String destination, Vector names, Vector layouts, |
public static void synchronize(String source, String destination, Vector names, Vector layouts, |
Vector selects, Vector creates, Vector ids, int mode, String delimiter, Vector indexList) |
Vector selects, Vector creates, Vector ids, int mode, String delimiter, Vector indexList, java.util.Vector destIDs) |
throws Exception |
throws Exception |
{ |
{ |
System.out.println(" bin in synchronize!!!"); |
System.out.println(" bin in synchronize!!!"); |
Line 1950 class Convert
|
Line 1964 class Convert
|
java.util.TreeSet myIdsDest = new TreeSet(); |
java.util.TreeSet myIdsDest = new TreeSet(); |
int deltaID = 1; |
int deltaID = 1; |
String idField = ""; |
String idField = ""; |
|
String destIDField = ""; |
String destTableName = ""; |
String destTableName = ""; |
|
|
try |
try |
Line 1970 class Convert
|
Line 1985 class Convert
|
bean.getConnection(); |
bean.getConnection(); |
bean.makeQuery(query, 50); |
bean.makeQuery(query, 50); |
idField = ids.get(tbIndex).toString(); |
idField = ids.get(tbIndex).toString(); |
|
destIDField = (destIDs!=null) ? destIDs.get(tbIndex).toString():convertText(idField); |
} catch (Exception e) |
} catch (Exception e) |
{ |
{ |
System.out.println("Warning exception occured \n " + e); |
System.out.println("Warning exception occured \n " + e); |
Line 2010 class Convert
|
Line 2025 class Convert
|
// remove extra query parts |
// remove extra query parts |
// destQuery.substring(0,destQuery.lastIndexOf(destTableName)+destTableName.length()+1); |
// destQuery.substring(0,destQuery.lastIndexOf(destTableName)+destTableName.length()+1); |
System.out.println("new Query " + tempQueryDest); |
System.out.println("new Query " + tempQueryDest); |
System.out.println("idfield " + idField + " " + ids.get(tbIndex).toString()); |
System.out.println("idfield " + idField + " " + ids.get(tbIndex).toString()+" targetID is "+destIDField); |
if (!idField.equals("")) |
if (!idField.equals("")) |
{ |
{ |
long startTime = System.currentTimeMillis(); |
long startTime = System.currentTimeMillis(); |
Line 2027 class Convert
|
Line 2042 class Convert
|
|
|
myIds = bean.getIDVector(ids.get(tbIndex).toString(), (String) names.get(tbIndex), |
myIds = bean.getIDVector(ids.get(tbIndex).toString(), (String) names.get(tbIndex), |
tempQuery, 0); |
tempQuery, 0); |
myIdsDest = beanDest.getIDVector(convertText(idField), destTableName, tempQueryDest, 0); |
myIdsDest = beanDest.getIDVector(destIDField, destTableName, tempQueryDest, 0); |
// System.out.println("status of remove |
// System.out.println("status of remove |
// "+myIds.remove("b015892")); |
// "+myIds.remove("b015892")); |
System.out.println("ids found for " + idField + " " + !myIds.isEmpty()); |
System.out.println("ids found for " + idField + " " + !myIds.isEmpty()); |
Line 2040 class Convert
|
Line 2055 class Convert
|
Vector deleted = new Vector(vec); |
Vector deleted = new Vector(vec); |
|
|
TreeSet linesToAppend = new TreeSet(vec); |
TreeSet linesToAppend = new TreeSet(vec); |
linesToAppend.addAll(vec); |
// linesToAppend.addAll(vec); |
linesToDelete = new TreeSet(vecDest); |
linesToDelete = new TreeSet(vecDest); |
// remove all lines that are already in dest database |
// remove all lines that are already in dest database |
linesToAppend.removeAll(vecDest); |
linesToAppend.removeAll(vecDest); |
Line 2074 class Convert
|
Line 2089 class Convert
|
for (int k = 0; k < vec.size() - deltaID; k = k + deltaID) |
for (int k = 0; k < vec.size() - deltaID; k = k + deltaID) |
{ |
{ |
System.out.println(vec.get(k) + " " + vec.get(k + deltaID) + " " + vec.lastElement()); |
System.out.println(vec.get(k) + " " + vec.get(k + deltaID) + " " + vec.lastElement()); |
if (query.indexOf("where") > 0) |
if (query.toLowerCase().indexOf("where") > 0) |
tempQuery = query + " and " + tempID + ">='" + vec.get(k) + "' and " + tempID |
tempQuery = query + " and " + tempID + ">='" + vec.get(k) + "' and " + tempID |
+ "<='" + vec.get(k + deltaID) + "'"; |
+ "<='" + vec.get(k + deltaID) + "'"; |
else |
else |
Line 2104 class Convert
|
Line 2119 class Convert
|
System.out.println(" last intervall from " + vec.get(endIndex) + " " |
System.out.println(" last intervall from " + vec.get(endIndex) + " " |
+ vec.lastElement()); |
+ vec.lastElement()); |
|
|
if (query.indexOf("where") > 0) |
if (query.toLowerCase().indexOf("where") > 0) |
tempQuery = query + " and " + tempID + ">='" + vec.get(endIndex) + "' and " |
tempQuery = query + " and " + tempID + ">='" + vec.get(endIndex) + "' and " |
+ tempID + "<='" + vec.lastElement() + "'"; |
+ tempID + "<='" + vec.lastElement() + "'"; |
else |
else |
Line 2123 class Convert
|
Line 2138 class Convert
|
// numIntervalls) + " " + myIdsDest.size()); |
// numIntervalls) + " " + myIdsDest.size()); |
} |
} |
// prepare new query for next chunk |
// prepare new query for next chunk |
if (query.indexOf("where") > 0) |
if (query.toLowerCase().indexOf("where") > 0) |
tempQuery = query + " and " + tempID + ">'" + vec.lastElement() + "'"; |
tempQuery = query + " and " + tempID + ">'" + vec.lastElement() + "'"; |
else |
else |
tempQuery = query + " where " + tempID + ">'" + vec.lastElement() + "'"; |
tempQuery = query + " where " + tempID + ">'" + vec.lastElement() + "'"; |
Line 2250 class Convert
|
Line 2265 class Convert
|
Vector line = (Vector) iter.next(); |
Vector line = (Vector) iter.next(); |
Object lineIDIndex = line.get(idIndex); |
Object lineIDIndex = line.get(idIndex); |
if (linesToAppend.contains(lineIDIndex)) |
if (linesToAppend.contains(lineIDIndex)) |
System.out.println("line " + linesToAppend.contains(line.get(idIndex)) + " " + lineIDIndex); |
System.out.println("line " + linesToAppend.contains(lineIDIndex) + " " + lineIDIndex); |
if (linesToAppend.contains(lineIDIndex)) |
if (linesToAppend.contains(lineIDIndex)) |
{ |
{ |
for (int l = 0; l < line.size(); ++l) |
for (int l = 0; l < line.size(); ++l) |