version 1.5, 2005/03/21 10:32:03
|
version 1.7, 2005/04/11 13:27:12
|
Line 93 class Convert
|
Line 93 class Convert
|
|
|
public void executeCommand() throws SQLException, Exception |
public void executeCommand() throws SQLException, Exception |
{ |
{ |
|
System.out.println("Executing command: \n"); |
|
System.out.println(command); |
|
|
java.sql.Connection con = bean.getConnection(); |
java.sql.Connection con = bean.getConnection(); |
Statement stm = con.createStatement(); |
Statement stm = con.createStatement(); |
stm.execute(command); |
stm.execute(command); |
|
stm.close(); |
} |
} |
} |
} |
|
|
Line 115 class Convert
|
Line 119 class Convert
|
|
|
final static int numIntervalls = 4; |
final static int numIntervalls = 4; |
|
|
static boolean debug = false; |
static boolean debug =! false; |
|
|
static boolean isGUI = true; |
static boolean isGUI = true; |
|
|
Line 129 class Convert
|
Line 133 class Convert
|
|
|
static Vector postSQLCommands = new Vector(); |
static Vector postSQLCommands = new Vector(); |
|
|
|
static final String versionID = new String("FM2SQL Version 0.9.0b\n"); |
|
|
public static void main(String args[]) throws IOException |
public static void main(String args[]) throws IOException |
{ |
{ |
/* |
/* |
Line 142 class Convert
|
Line 148 class Convert
|
FileOutputStream file = null; |
FileOutputStream file = null; |
if (args.length != 1) |
if (args.length != 1) |
{ |
{ |
|
System.out.println(versionID); |
System.out.println("Usage: java Convert <xml config file>"); |
System.out.println("Usage: java Convert <xml config file>"); |
System.exit(-1); |
System.exit(-1); |
} |
} |
Line 159 class Convert
|
Line 166 class Convert
|
System.setOut(stream); |
System.setOut(stream); |
System.setErr(stream); |
System.setErr(stream); |
} |
} |
|
System.out.println(versionID); |
StringBuffer sb = readXMLFile(args[0]); |
StringBuffer sb = readXMLFile(args[0]); |
parseXMLConfig(sb); |
parseXMLConfig(sb); |
if (!(new File(args[0]).exists())) |
if (!(new File(args[0]).exists())) |
System.exit(0); |
{ |
|
|
|
System.exit(0); |
|
} |
System.out.println("Finished!"); |
System.out.println("Finished!"); |
// convert("jdbc:fmpro:http://141.14.237.74:8050","jdbc:postgresql://erebos/test",null,null); |
// convert("jdbc:fmpro:http://141.14.237.74:8050","jdbc:postgresql://erebos/test",null,null); |
} |
} |
Line 417 class Convert
|
Line 427 class Convert
|
public static void convert(String source, String destination, Vector names, Vector layouts, |
public static void convert(String source, String destination, Vector names, Vector layouts, |
Vector selects, Vector creates, Vector ids, int mode, String delimiter) throws Exception |
Vector selects, Vector creates, Vector ids, int mode, String delimiter) throws Exception |
{ |
{ |
|
// TODO implement convert_temp mode!!! |
FM2SQL.ProgressDialog dialog = null; |
FM2SQL.ProgressDialog dialog = null; |
|
|
if (isGUI) |
if (isGUI) |
Line 502 class Convert
|
Line 512 class Convert
|
ConversionProperties prop = getFieldNamesAndDestTableName(creates.get(tbIndex).toString(), |
ConversionProperties prop = getFieldNamesAndDestTableName(creates.get(tbIndex).toString(), |
query, names.get(tbIndex).toString()); |
query, names.get(tbIndex).toString()); |
destTableName = prop.destTableName; |
destTableName = prop.destTableName; |
|
if (mode == Convert.DataBase.CONVERT_TEMP_MODE) |
|
{ |
|
destTableName += "_temp"; |
|
} |
fieldNames = prop.fieldNames; |
fieldNames = prop.fieldNames; |
if (mode == Convert.DataBase.CONVERT_MODE) |
if (mode == Convert.DataBase.CONVERT_MODE || mode == Convert.DataBase.CONVERT_TEMP_MODE) |
{ |
{ |
|
|
if (tables.indexOf(destTableName) >= 0) |
if (tables.indexOf(destTableName) >= 0) |
Line 511 class Convert
|
Line 525 class Convert
|
stm.executeUpdate("drop table " + beanDest.getQC() + destTableName + beanDest.getQC()); |
stm.executeUpdate("drop table " + beanDest.getQC() + destTableName + beanDest.getQC()); |
tables.remove(destTableName); |
tables.remove(destTableName); |
System.out.println("dropped table" + destTableName); |
System.out.println("dropped table" + destTableName); |
|
|
} |
} |
if ((tables.indexOf(destTableName) < 0)) |
if ((tables.indexOf(destTableName) < 0)) |
{ |
{ |
Line 525 class Convert
|
Line 538 class Convert
|
command = new StringBuffer(50); |
command = new StringBuffer(50); |
command.append("CREATE TABLE "); |
command.append("CREATE TABLE "); |
command.append(beanDest.getQC()); |
command.append(beanDest.getQC()); |
command.append(convertText((String) names.get(tbIndex))); |
command.append(destTableName);//convertText((String) names.get(tbIndex))); |
command.append(beanDest.getQC()); |
command.append(beanDest.getQC()); |
command.append("("); |
command.append("("); |
String type = null; |
String type = null; |
Line 982 class Convert
|
Line 995 class Convert
|
{ |
{ |
databases = getXMLConfig(sb); |
databases = getXMLConfig(sb); |
|
|
|
// destination DataBase object |
|
DataBase dbDest = ((DataBase) databases.lastElement()); |
|
|
DBBean database = ((DataBase) databases.lastElement()).bean; |
DBBean database = ((DataBase) databases.lastElement()).bean; |
databases.remove(databases.size() - 1); |
databases.remove(databases.size() - 1); |
|
|
|
for (Iterator iterator = dbDest.preCommands.iterator(); iterator.hasNext();) |
|
{ |
|
SQLCommand sqlCommand = (SQLCommand) iterator.next(); |
|
sqlCommand.executeCommand(); |
|
} |
|
|
// databases.add(database); |
// databases.add(database); |
for (Iterator iter = databases.iterator(); iter.hasNext();) |
for (Iterator iter = databases.iterator(); iter.hasNext();) |
{ |
{ |
Line 994 class Convert
|
Line 1017 class Convert
|
sqlCommand.executeCommand(); |
sqlCommand.executeCommand(); |
} |
} |
int mode = db.mode; |
int mode = db.mode; |
if (mode == DataBase.CONVERT_MODE || mode == DataBase.APPEND_MODE) |
if (mode == DataBase.CONVERT_MODE || mode == DataBase.APPEND_MODE |
|
|| mode == DataBase.CONVERT_TEMP_MODE) |
convertBatch(db.bean, database, db.tables, db.layouts, db.selects, db.creates, db.ids, |
convertBatch(db.bean, database, db.tables, db.layouts, db.selects, db.creates, db.ids, |
mode, db.delimiter); |
mode, db.delimiter); |
else if (mode == DataBase.UPDATE_MODE) |
else if (mode == DataBase.UPDATE_MODE) |
Line 1024 class Convert
|
Line 1048 class Convert
|
} |
} |
|
|
} |
} |
|
for (Iterator iterator = dbDest.postCommands.iterator(); iterator.hasNext();) |
|
{ |
|
SQLCommand sqlCommand = (SQLCommand) iterator.next(); |
|
sqlCommand.executeCommand(); |
|
} |
|
|
} catch (Exception e) |
} catch (Exception e) |
{ |
{ |
Line 1143 class Convert
|
Line 1172 class Convert
|
|
|
else if (modeString.equals("synchronize")) |
else if (modeString.equals("synchronize")) |
mode = DataBase.SYNCHRONIZE_MODE; |
mode = DataBase.SYNCHRONIZE_MODE; |
|
else if (modeString.equals("convert_temp")) |
|
mode = DataBase.CONVERT_TEMP_MODE; |
|
|
// if(node3!=null) |
// if(node3!=null) |
// System.out.println(node3.name); |
// System.out.println(node3.name); |
|
|
Line 1430 class Convert
|
Line 1462 class Convert
|
|
|
final static int SYNCHRONIZE_MODE = 5; |
final static int SYNCHRONIZE_MODE = 5; |
|
|
|
final static int CONVERT_TEMP_MODE = 6; |
|
|
int mode = -1; |
int mode = -1; |
|
|
public DataBase(DBBean bean, Vector tables, Vector layouts, Vector selects, Vector creates, |
public DataBase(DBBean bean, Vector tables, Vector layouts, Vector selects, Vector creates, |
Line 1496 class Convert
|
Line 1530 class Convert
|
while (count < preCommands.size()) |
while (count < preCommands.size()) |
{ |
{ |
SQLCommand sqlcommand=(SQLCommand)preCommands.get(count); |
SQLCommand sqlcommand=(SQLCommand)preCommands.get(count); |
buffr.write(" <sqlcommand execute=\"before\">" + sqlcommand.command + "</sqlcommand>\n"); |
buffr.write(" <sqlcommand execute=\"before\">" + sqlcommand.command |
|
+ "</sqlcommand>\n"); |
count++; |
count++; |
} |
} |
} |
} |
Line 1507 class Convert
|
Line 1542 class Convert
|
{ |
{ |
SQLCommand sqlcommand=(SQLCommand)postCommands.get(count); |
SQLCommand sqlcommand=(SQLCommand)postCommands.get(count); |
|
|
buffr.write(" <sqlcommand execute=\"after\">" + sqlcommand.command + "</sqlcommand>\n"); |
buffr.write(" <sqlcommand execute=\"after\">" + sqlcommand.command |
|
+ "</sqlcommand>\n"); |
count++; |
count++; |
} |
} |
} |
} |
Line 3638 class Convert
|
Line 3674 class Convert
|
// retrieve field_names from select statement |
// retrieve field_names from select statement |
// TODO problem with different fieldNames in create statement will |
// TODO problem with different fieldNames in create statement will |
// overwrite them |
// overwrite them |
if (query.indexOf("*") < 0) |
if (query.indexOf("*") < 0 && create.equals(""))// quick hack for hartmut |
{ |
{ |
int selectEndIndex = query.indexOf("from"); |
int selectEndIndex = query.indexOf("from"); |
StringTokenizer tokenizer = new StringTokenizer(query.substring(6, selectEndIndex), ","); |
StringTokenizer tokenizer = new StringTokenizer(query.substring(6, selectEndIndex), ","); |