version 1.37, 2004/02/19 11:05:41
|
version 1.38, 2004/02/23 10:59:53
|
Line 222 class Convert
|
Line 222 class Convert
|
// dialog.setVisible(false); |
// dialog.setVisible(false); |
} |
} |
|
|
|
/** |
|
* Method for SQL UPDATE |
|
* @param source |
|
* @param destination |
|
* @param names |
|
* @param layouts |
|
* @param selects |
|
* @param creates |
|
* @param ids |
|
* @param mode |
|
* @throws Exception |
|
*/ |
public static void update(String source, String destination, Vector names, Vector layouts, Vector selects, Vector creates, Vector ids, int mode) throws Exception |
public static void update(String source, String destination, Vector names, Vector layouts, Vector selects, Vector creates, Vector ids, int mode) throws Exception |
{ |
{ |
FM2SQL.ProgressDialog dialog = null; |
FM2SQL.ProgressDialog dialog = null; |
Line 398 class Convert
|
Line 410 class Convert
|
|
|
} |
} |
/** |
/** |
transfers the specified array of tables to the destination database |
* 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 |
and creates the table if it does not exist if it exists and mode is not append the table is dropped |
|
|
**/ |
* @param source |
|
* @param destination |
|
* @param names |
|
* @param layouts |
|
* @param selects |
|
* @param creates |
|
* @param ids |
|
* @param 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 |
public static void convert(String source, String destination, Vector names, Vector layouts, Vector selects, Vector creates, Vector ids, int mode) throws Exception |
{ |
{ |
|
|
Line 421 class Convert
|
Line 444 class Convert
|
java.util.TreeSet myIds = new TreeSet(); |
java.util.TreeSet myIds = new TreeSet(); |
int deltaID = 1; |
int deltaID = 1; |
String idField = ""; |
String idField = ""; |
|
String destTableName = ""; |
if (source != null && destination != null) |
if (source != null && destination != null) |
{ |
{ |
// setting user and passwd |
// setting user and passwd |
Line 496 class Convert
|
Line 520 class Convert
|
// System.exit(0); |
// System.exit(0); |
if (mode == Convert.DataBase.CONVERT_MODE) |
if (mode == Convert.DataBase.CONVERT_MODE) |
{ |
{ |
|
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()); |
|
|
|
if (tables.indexOf(destTableName) >= 0) |
|
{ |
|
stm.executeUpdate("drop table " + beanDest.getQC() + destTableName + beanDest.getQC()); |
|
tables.remove(destTableName); |
|
System.out.println("dropped table" + destTableName); |
|
|
|
} |
|
/* |
|
if(destTableName.equals("")) |
if (tables.indexOf(names.get(tbIndex)) >= 0) |
if (tables.indexOf(names.get(tbIndex)) >= 0) |
{ |
{ |
stm.executeUpdate("drop table " + beanDest.getQC() + names.get(tbIndex) + beanDest.getQC()); |
stm.executeUpdate("drop table " + beanDest.getQC() + names.get(tbIndex) + beanDest.getQC()); |
Line 507 class Convert
|
Line 551 class Convert
|
tables.remove(convertText((String) names.get(tbIndex))); |
tables.remove(convertText((String) names.get(tbIndex))); |
System.out.println("dropped table" + names.get(tbIndex)); |
System.out.println("dropped table" + names.get(tbIndex)); |
} |
} |
|
*/ |
if (tables.indexOf(names.get(tbIndex)) < 0 && tables.indexOf(convertText(names.get(tbIndex).toString())) < 0) |
if ((tables.indexOf(destTableName) < 0)) //&& tables.indexOf(names.get(tbIndex)) < 0 && tables.indexOf(convertText(names.get(tbIndex).toString())) < 0 ) |
{ |
{ |
|
|
if (creates.get(tbIndex).equals("") || creates.get(tbIndex).toString().toLowerCase().indexOf("create") < 0) |
if (creates.get(tbIndex).equals("") || creates.get(tbIndex).toString().toLowerCase().indexOf("create") < 0) |
{ |
{ |
System.out.println("Warning empty or invalid create statement - creating one for you\n"); |
System.out.println("Warning empty or invalid create statement - creating one for you\n"); |
Line 541 class Convert
|
Line 586 class Convert
|
// System.exit(0); |
// System.exit(0); |
//command.append(DBBean.getQC()); |
//command.append(DBBean.getQC()); |
} else |
} else |
command = new StringBuffer().append(creates.get(tbIndex).toString()); |
command = new StringBuffer().append(creates.get(tbIndex).toString().toLowerCase()); |
stm.executeUpdate(command.toString()); |
stm.executeUpdate(command.toString()); |
|
|
} |
} |
Line 556 class Convert
|
Line 601 class Convert
|
|
|
command.append("INSERT INTO "); |
command.append("INSERT INTO "); |
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(" values ( "); |
command.append(" values ( "); |
|
|
|
// add a question marks for every field |
for (int i = 0; i < bean.getColumnNames().size() - 1; ++i) |
for (int i = 0; i < bean.getColumnNames().size() - 1; ++i) |
command.append("?,"); |
command.append("?,"); |
command.append("?)"); |
command.append("?)"); |
Line 570 class Convert
|
Line 617 class Convert
|
int endIndex = -1; |
int endIndex = -1; |
String tempQuery = query; |
String tempQuery = query; |
String tempID = bean.getQC() + idField + bean.getQC(); |
String tempID = bean.getQC() + idField + bean.getQC(); |
|
// if id_field not do incremental conversion else do it all at once |
if (!idField.equals("")) |
if (!idField.equals("")) |
{ |
{ |
long startTime = System.currentTimeMillis(); |
long startTime = System.currentTimeMillis(); |
Line 613 class Convert
|
Line 661 class Convert
|
endIndex = k + deltaID; |
endIndex = k + deltaID; |
} |
} |
System.out.println(endIndex); |
System.out.println(endIndex); |
|
//all data written ? if not write last chunk of data |
if (endIndex == vec.size() - 1) |
if (endIndex == vec.size() - 1) |
System.out.println("fits"); |
System.out.println("fits"); |
else |
else |
Line 631 class Convert
|
Line 680 class Convert
|
dialog.title.setText("Writing table data ..."); |
dialog.title.setText("Writing table data ..."); |
command = writeDatainDestTable(dialog, command, endIndex, pstm, rowCount); |
command = writeDatainDestTable(dialog, command, endIndex, pstm, rowCount); |
} |
} |
|
// prepare new query for next chunk |
if (query.indexOf("where") > 0) |
if (query.indexOf("where") > 0) |
tempQuery = query + " and " + tempID + ">" + vec.lastElement(); |
tempQuery = query + " and " + tempID + ">" + vec.lastElement(); |
else |
else |
Line 641 class Convert
|
Line 691 class Convert
|
System.out.println("Time for incremental convert elapsed " + (endTime - startTime)); |
System.out.println("Time for incremental convert elapsed " + (endTime - startTime)); |
} else |
} else |
{ |
{ |
|
// read and write all in one big chunk |
long startTime = System.currentTimeMillis(); |
long startTime = System.currentTimeMillis(); |
|
|
bean.makeQuery(query, 0); |
bean.makeQuery(query, 0); |
Line 676 class Convert
|
Line 727 class Convert
|
dialog.setVisible(false); |
dialog.setVisible(false); |
} |
} |
} |
} |
|
/** |
|
* Writes data to the destination table |
|
* @param dialog progress dialog |
|
* @param command |
|
* @param j data index for progress bar |
|
* @param pstm prepared statement |
|
* @param rowCount number of datasets |
|
* @return command |
|
* @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) throws Exception, SQLException |
{ |
{ |
Vector row; |
Vector row; |
Line 739 class Convert
|
Line 801 class Convert
|
return command; |
return command; |
} |
} |
|
|
|
/** |
|
* removes special characters from the input string as well as .fp5 |
|
* @param newName String to change |
|
* @return |
|
*/ |
public static String convertText(String newName) |
public static String convertText(String newName) |
{ |
{ |
StringBuffer alterMe = new StringBuffer(newName.trim().toLowerCase()); |
StringBuffer alterMe = new StringBuffer(newName.trim().toLowerCase()); |
Line 832 class Convert
|
Line 899 class Convert
|
} |
} |
return alterMe.toString(); |
return alterMe.toString(); |
} |
} |
|
/** |
|
* Converts > and < in an entity (> or <) |
|
* @param newName |
|
* @return |
|
*/ |
public static String convertToEntities(String newName) |
public static String convertToEntities(String newName) |
{ |
{ |
StringBuffer alterMe = new StringBuffer(newName.trim()); |
StringBuffer alterMe = new StringBuffer(newName.trim()); |
Line 862 class Convert
|
Line 934 class Convert
|
} |
} |
return alterMe.toString(); |
return alterMe.toString(); |
} |
} |
|
/** |
|
* Masks the single quote character '-->\' |
|
* @param newName |
|
* @return |
|
*/ |
public static String convertUml(String newName) |
public static String convertUml(String newName) |
{ |
{ |
StringBuffer alterMe = new StringBuffer(newName.trim()); |
StringBuffer alterMe = new StringBuffer(newName.trim()); |
Line 971 class Convert
|
Line 1048 class Convert
|
} |
} |
return alterMe.toString(); |
return alterMe.toString(); |
} |
} |
|
/** |
|
* parses the input xml file for batch conversion |
|
* called from readXMLFile |
|
* * @param sb |
|
*/ |
public static void parseXMLConfig(StringBuffer sb) |
public static void parseXMLConfig(StringBuffer sb) |
{ |
{ |
boolean finished = false; |
boolean finished = false; |
Line 1320 class Convert
|
Line 1401 class Convert
|
|
|
} |
} |
} |
} |
|
/** |
|
* reads the specified xml file |
|
* @param xmlFile |
|
*/ |
public static void readXMLFile(String xmlFile) |
public static void readXMLFile(String xmlFile) |
{ |
{ |
try |
try |
Line 1342 class Convert
|
Line 1427 class Convert
|
e.printStackTrace(); |
e.printStackTrace(); |
} |
} |
} |
} |
|
|
|
/** |
|
* Helper class for XML-File parsing |
|
* Holds the parsed data |
|
* @author rogo |
|
* |
|
*/ |
public static class DataBase |
public static class DataBase |
{ |
{ |
DBBean bean; |
DBBean bean; |
Line 1366 class Convert
|
Line 1458 class Convert
|
this.mode = mode; |
this.mode = mode; |
this.bean.setIDVector(ids); |
this.bean.setIDVector(ids); |
} |
} |
|
/** |
|
* writes the data contained in this object th the buffered writer |
|
* * @param buffr |
|
* @throws Exception |
|
*/ |
public void exportToXML(BufferedWriter buffr) throws Exception |
public void exportToXML(BufferedWriter buffr) throws Exception |
{ |
{ |
// ids=bean.getIDVector(); |
// ids=bean.getIDVector(); |