--- FM2SQL/src/Convert.java 2005/04/19 10:49:05 1.10 +++ FM2SQL/src/Convert.java 2005/04/22 11:03:53 1.12 @@ -29,11 +29,14 @@ import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; import java.sql.Types; +import java.text.DateFormat; import java.text.ParseException; import java.util.ArrayList; +import java.util.Date; import java.util.Hashtable; import java.util.Iterator; import java.util.List; +import java.util.Locale; import java.util.StringTokenizer; import java.util.TreeSet; import java.util.Vector; @@ -47,6 +50,8 @@ import com.exploringxml.xml.Xparse; class Convert { + private static final String _TEMP = "_temp"; + /** * Helper class for index creation * @@ -119,7 +124,7 @@ class Convert final static int numIntervalls = 4; - static boolean debug = !false; + static boolean debug = false; static boolean isGUI = true; @@ -133,12 +138,16 @@ class Convert static Vector postSQLCommands = new Vector(); - static final String versionID = new String("FM2SQL Version 0.9.1b\n"); + static final String versionID = new String("FM2SQL Version 0.9.5b\n"); private static boolean noError = false; public static void main(String args[]) throws IOException { + // DateFormat d = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, + // Locale.GERMANY); + // System.out.println(convertText("rogoistSuper" + "_" + d.format(new Date()).replace(':', '_'))); + /* * try { //byte[] b = "�".getBytes("UTF-8"); // * System.out.println("QueryString " +b[0]+" "+b[1]+(new @@ -266,7 +275,7 @@ class Convert // if vectors[1].get(i) != null) if (!layout.equals("")) { - + query = addLayoutToQuery(names, query, tbIndex, layout); } @@ -531,7 +540,7 @@ class Convert destTableName = prop.destTableName; if (mode == Convert.DataBase.CONVERT_TEMP_MODE) { - destTableName += "_temp"; + destTableName += _TEMP; } fieldNames = prop.fieldNames; if (mode == Convert.DataBase.CONVERT_MODE || mode == Convert.DataBase.CONVERT_TEMP_MODE) @@ -712,6 +721,23 @@ class Convert if (isGUI) resetGUI(dialog); noError = true; + if (mode == Convert.DataBase.CONVERT_TEMP_MODE) + { + String originalName = destTableName.split(_TEMP)[0]; + // TODO + if (beanDest.getTableNames().contains(originalName)) + { + DateFormat d = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT); + d.setTimeZone(java.util.TimeZone.getTimeZone("CET")); + + String date = d.format(new Date()); + date = date.replace(':', '_'); + renameTable(beanDest, addQuotes(beanDest, originalName), addQuotes(beanDest, + convertText(originalName + "_" + date))); + } + renameTable(beanDest, addQuotes(beanDest, destTableName), addQuotes(beanDest, + originalName)); + } } } catch (Exception e) { @@ -728,6 +754,8 @@ class Convert } } catch (Error e) { + noError = false; + System.out.println(e); e.printStackTrace(); } @@ -735,6 +763,17 @@ class Convert } /** + * + * @param beanDest2 + * @param originalName + * @return + */ + private static String addQuotes(DBBean bean, String originalName) + { + return bean.getQC() + originalName + bean.getQC(); + } + + /** * @param names * @param dialog * @param tbIndex @@ -1106,6 +1145,21 @@ class Convert } } + /** + * + * @param database + * @param db + * @throws Exception + * @throws SQLException + */ + private static void renameTable(DBBean database, String sourceTable, String destTable) + throws SQLException, Exception + { + String command = "alter table " + sourceTable + " rename " + " to " + destTable; + SQLCommand sqlCommand = new SQLCommand(database, command); + sqlCommand.executeCommand(); + } + public static Vector getXMLConfig(StringBuffer sb) {