version 1.5, 2004/01/12 13:22:36
|
version 1.32, 2004/02/12 13:02:56
|
Line 1
|
Line 1
|
|
|
|
|
import java.util.*; |
import java.util.*; |
import java.sql.*; |
import java.sql.*; |
import java.awt.Cursor; |
import java.awt.Cursor; |
Line 26 class Convert
|
Line 25 class Convert
|
static String userDest="postgres",passwdDest="rogo"; |
static String userDest="postgres",passwdDest="rogo"; |
static boolean batchRun=false; |
static boolean batchRun=false; |
static Vector databases = new Vector(); |
static Vector databases = new Vector(); |
|
final static int numHits = 5000; |
|
final static int numIntervalls = 2; |
public static void main(String args[]) |
public static void main(String args[]) |
{ |
{ |
/* try |
/* try |
Line 36 class Convert
|
Line 36 class Convert
|
//System.out.println(new String(b,"UTF-8")); |
//System.out.println(new String(b,"UTF-8")); |
} catch (UnsupportedEncodingException e) |
} catch (UnsupportedEncodingException e) |
{ |
{ |
// TODO Auto-generated catch block |
|
e.printStackTrace(); |
e.printStackTrace(); |
}*/ |
}*/ |
FileOutputStream file = null; |
FileOutputStream file = null; |
Line 51 class Convert
|
Line 50 class Convert
|
file = new FileOutputStream("./log.txt"); |
file = new FileOutputStream("./log.txt"); |
} catch (FileNotFoundException e1) |
} catch (FileNotFoundException e1) |
{ |
{ |
// TODO Auto-generated catch block |
|
e1.printStackTrace(); |
e1.printStackTrace(); |
} |
} |
PrintStream stream= new PrintStream(file); |
PrintStream stream= new PrintStream(file); |
Line 61 class Convert
|
Line 59 class Convert
|
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); |
} |
} |
public static void convertBatch(DBBean source,DBBean destination,Vector names,Vector layouts,Vector selects,Vector creates) throws Exception |
public static void convertBatch(DBBean source,DBBean destination,Vector names,Vector layouts,Vector selects,Vector creates,int mode) throws Exception |
{ |
{ |
/*FM2SQL.ProgressDialog dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance); |
/*FM2SQL.ProgressDialog dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance); |
dialog.setTitle("Conversion running ..."); |
dialog.setTitle("Conversion running ..."); |
Line 139 class Convert
|
Line 137 class Convert
|
// System.out.println(beanDest.getTableNames(beanDest.getCatalogs().get(2).toString())); |
// System.out.println(beanDest.getTableNames(beanDest.getCatalogs().get(2).toString())); |
stm = beanDest.getConnection().createStatement(); |
stm = beanDest.getConnection().createStatement(); |
// System.exit(0); |
// System.exit(0); |
if(true) |
if(mode==Convert.DataBase.CONVERT_MODE) |
{ |
{ |
if(tables.indexOf(names.get(tbIndex))>=0) |
if(tables.indexOf(names.get(tbIndex))>=0) |
{ |
{ |
Line 306 class Convert
|
Line 304 class Convert
|
} |
} |
|
|
|
|
|
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; |
|
if (FM2SQL.fmInstance != null) |
|
{ |
|
dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance); |
|
dialog.setTitle("Conversion running ..."); |
|
dialog.title.setText("Getting table data ..."); |
|
dialog.setLocation(FM2SQL.fmInstance.getLocationOnScreen().x + (FM2SQL.fmInstance.getWidth() - 400) / 2, FM2SQL.fmInstance.getLocationOnScreen().y + (FM2SQL.fmInstance.getHeight() - 250) / 2); |
|
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
|
FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
|
dialog.thread = Thread.currentThread(); |
|
} |
|
// setting user and passwd |
|
bean.setUserAndPasswd(user, passwd); |
|
// setting user and passwd |
|
beanDest.setUserAndPasswd(userDest, passwdDest); |
|
if (dialog != null) |
|
dialog.setSize(400, 250); |
|
StringBuffer command = null; |
|
String query = null; |
|
try |
|
{ |
|
//bean.setConnection("jdbc:fmpro:http://141.14.237.74:8050"); |
|
//bean.setConnection("jdbc:postgresql://erebos/test","postgres","rogo"); |
|
bean.setConnection(source); |
|
if (names == null) |
|
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; |
|
try |
|
{ |
|
query = "select * from " + bean.getQC() + names.get(tbIndex).toString() + bean.getQC(); |
|
String layout = (layouts.isEmpty()) ? "" : layouts.get(tbIndex).toString(); |
|
query = (selects != null) ? selects.get(tbIndex).toString() : query; |
|
//if vectors[1].get(i) != null) |
|
if (layout != "") |
|
{ |
|
layout = " layout " + bean.getQC() + layout + bean.getQC(); |
|
String name = names.get(tbIndex).toString(); |
|
StringBuffer queryLayout = new StringBuffer(query); |
|
queryLayout.insert(queryLayout.indexOf(name) + name.length() + 1, " " + layout); |
|
query = queryLayout.toString(); |
|
System.out.println("added layout " + query); |
|
|
|
} |
|
dialog.title.setText("Getting table data ..."); |
|
dialog.table.setText(names.get(tbIndex).toString()); |
|
dialog.status.setText("Table " + (tbIndex + 1) + " of " + names.size()); |
|
dialog.show(); |
|
bean.getConnection(); |
|
bean.makeQuery(query, 0); |
|
} catch (Exception e) |
|
{ |
|
continue; |
|
} |
|
//beanDest.setConnection("jdbc:postgresql://erebos/test3"); |
|
beanDest.setConnection(destination); |
|
|
|
Statement stm = beanDest.getConnection().createStatement(); |
|
|
|
Vector tables = beanDest.getTableNames(); |
|
// Collections.sort(tables); |
|
System.out.println(names.get(tbIndex) + " " + tables.indexOf(convertText((String) names.get(tbIndex)))); // "//beanDest.getTypeNames()); |
|
tables = beanDest.getTableNames(); |
|
// System.out.println(beanDest.getTableNames(beanDest.getCatalogs().get(2).toString())); |
|
stm = beanDest.getConnection().createStatement(); |
|
// System.exit(0); |
|
|
|
if (dialog != null) |
|
dialog.title.setText("Writing table data ..."); |
|
|
|
int j = -1; |
|
|
|
Vector row = null; |
|
command = new StringBuffer(); |
|
|
|
command.append("UPDATE "); |
|
command.append(beanDest.getQC()); |
|
command.append(convertText((String) names.get(tbIndex))); |
|
command.append(beanDest.getQC()); |
|
command.append(" SET "); |
|
|
|
int size = bean.getColumnNames().size(); |
|
for (int i = 0; i < size - 1; ++i) |
|
command.append(beanDest.getQC()+convertText((String)bean.getColumnNames().get(i))+beanDest.getQC()+" = ? ,"); |
|
command.append(convertText((String)bean.getColumnNames().get(size-1))+" = ? "); |
|
command.append("WHERE "+convertText(ids.get(tbIndex).toString())+ " = ?"); |
|
PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString()); |
|
System.out.println(command+" "+tbIndex); |
|
int rowCount = bean.getRowCount(query); |
|
int idIndex = bean.getColumnNames().indexOf(ids.get(tbIndex) ); |
|
while ((row = bean.getNextRow()) != null) |
|
{ |
|
j++; |
|
//print rows |
|
Object obj = null; |
|
/* for(int k=0;k<row.size()-1;++k) |
|
{ |
|
obj = row.get(k); |
|
//System.out.println("row "+obj+" "+k); |
|
if(obj!=null&&!(obj instanceof ArrayList)) |
|
command.append("'"+convertUml(obj.toString())+"',"); |
|
else if(obj!=null&& obj instanceof ArrayList) |
|
command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"',"); |
|
else command.append("NULL,"); |
|
} |
|
obj = row.get(row.size() - 1); |
|
if (obj != null && !(obj instanceof ArrayList)) |
|
command.append("'"+convertUml(obj.toString())+"')"); |
|
else |
|
if(obj!=null&& obj instanceof ArrayList) |
|
command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"')"); //command.append(obj.toString()+")"); |
|
else command.append("NULL)"); |
|
*/ |
|
//command.append("'"+row.get(row.size()-1)+"')"); |
|
//command.append(" )"); |
|
// for(int k=0;k<row.size();++k) |
|
|
|
// System.out.println(); |
|
// System.out.println(command+" "+j+" "+row.size()+" "+ ((Vector)result2[0].get(j)).size()); |
|
// System.out.println(command); |
|
for (int k = 0; k < row.size(); ++k) |
|
{ |
|
obj = row.get(k); |
|
if (obj instanceof ArrayList) |
|
obj = ((List) obj).get(0); |
|
String str = (obj == null) ? "NULL" : obj.toString(); |
|
if (!str.equals("NULL")) |
|
pstm.setString(k + 1, str); |
|
else |
|
pstm.setNull(k + 1, Types.NULL); |
|
} |
|
pstm.setString(row.size()+1,row.get(idIndex).toString()); |
|
//System.out.println(pstm.toString()); |
|
// System.exit(0); |
|
pstm.execute(); |
|
//stm.executeUpdate(command.toString()); |
|
if(dialog!=null) |
|
dialog.progress.setValue((int) (((double) (j + 1) / (double) rowCount) * 100.0)); |
|
// System.out.println( (int)(((double)(j+1)/(double)result[0].size())*100.0)+" "+result[0].size()+" "+j); |
|
command = null; |
|
} // to for loop |
|
|
|
} |
|
} catch (Exception e) |
|
{ |
|
System.out.println("Error while connecting to database " + e); |
|
if (dialog != null) |
|
{ |
|
dialog.setVisible(false); |
|
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
} |
|
java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream(); |
|
java.io.PrintStream stream = new java.io.PrintStream(b); |
|
stream.print(command + "\n\n"); |
|
e.printStackTrace(stream); |
|
FM2SQL.showErrorDialog(b.toString(), "Error occured !"); |
|
|
|
} |
|
if (dialog != null) |
|
{ |
|
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
|
|
dialog.setVisible(false); |
|
} |
|
|
|
} |
|
/** |
|
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 |
|
|
public static void convert(String source,String destination,Vector names,Vector layouts,Vector selects,Vector creates) throws Exception |
**/ |
|
public static void convert(String source,String destination,Vector names,Vector layouts,Vector selects,Vector creates,Vector ids,int mode) throws Exception |
{ |
{ |
FM2SQL.ProgressDialog dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance); |
FM2SQL.ProgressDialog dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance); |
dialog.setTitle("Conversion running ..."); |
dialog.setTitle("Conversion running ..."); |
Line 315 class Convert
|
Line 492 class Convert
|
dialog.setLocation(FM2SQL.fmInstance.getLocationOnScreen().x+(FM2SQL.fmInstance.getWidth()-400)/2,FM2SQL.fmInstance.getLocationOnScreen().y+(FM2SQL.fmInstance.getHeight()-250)/2); |
dialog.setLocation(FM2SQL.fmInstance.getLocationOnScreen().x+(FM2SQL.fmInstance.getWidth()-400)/2,FM2SQL.fmInstance.getLocationOnScreen().y+(FM2SQL.fmInstance.getHeight()-250)/2); |
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR)); |
|
java.util.TreeSet myIds = new TreeSet(); |
|
int deltaID = 1; |
|
String idField = ""; |
dialog.thread=Thread.currentThread(); |
dialog.thread=Thread.currentThread(); |
// setting user and passwd |
// setting user and passwd |
bean.setUserAndPasswd(user,passwd); |
bean.setUserAndPasswd(user,passwd); |
Line 337 class Convert
|
Line 517 class Convert
|
for(tbIndex=0;tbIndex<names.size();++tbIndex) |
for(tbIndex=0;tbIndex<names.size();++tbIndex) |
{ |
{ |
Vector[] result = null; |
Vector[] result = null; |
try { |
try |
|
{ |
query = "select * from " + bean.getQC() +names.get(tbIndex).toString() + bean.getQC(); |
query = "select * from " + bean.getQC() +names.get(tbIndex).toString() + bean.getQC(); |
String layout=(layouts.isEmpty()) ? "":layouts.get(tbIndex).toString(); |
String layout=(layouts.isEmpty()) ? "":layouts.get(tbIndex).toString(); |
query = (selects!=null) ? selects.get(tbIndex).toString():query; |
query = (selects!=null) ? selects.get(tbIndex).toString():query; |
Line 354 class Convert
|
Line 535 class Convert
|
} |
} |
// if ( layout!= "") |
// if ( layout!= "") |
// query += " layout " + bean.getQC() + layout + bean.getQC(); |
// query += " layout " + bean.getQC() + layout + bean.getQC(); |
dialog.title.setText("Getting table data ..."); |
dialog.title.setText("Reading table data ..."); |
dialog.table.setText(names.get(tbIndex).toString()); |
dialog.table.setText(names.get(tbIndex).toString()); |
dialog.status.setText("Table " + (tbIndex + 1) + " of " + names.size()); |
dialog.status.setText("Table " + (tbIndex + 1) + " of " + names.size()); |
dialog.show(); |
dialog.show(); |
//result = bean.getQueryData(query, dialog, 0); |
//result = bean.getQueryData(query, dialog, 0); |
bean.getConnection(); |
bean.getConnection(); |
bean.makeQuery(query,0); |
bean.makeQuery(query, 50); |
|
// @TODO id Vector must be used in querys while loop over id ranges where id>=start and id<=end |
|
idField = ids.get(tbIndex).toString(); |
|
|
} catch (Exception e) |
} catch (Exception e) |
{ |
{ |
|
System.out.println(e); |
continue; |
continue; |
} |
} |
//beanDest.setConnection("jdbc:postgresql://erebos/test3"); |
//beanDest.setConnection("jdbc:postgresql://erebos/test3"); |
Line 377 class Convert
|
Line 562 class Convert
|
// System.out.println(beanDest.getTableNames(beanDest.getCatalogs().get(2).toString())); |
// System.out.println(beanDest.getTableNames(beanDest.getCatalogs().get(2).toString())); |
stm = beanDest.getConnection().createStatement(); |
stm = beanDest.getConnection().createStatement(); |
// System.exit(0); |
// System.exit(0); |
if(true) |
if(mode==Convert.DataBase.CONVERT_MODE) |
{ |
{ |
if(tables.indexOf(names.get(tbIndex))>=0) |
if(tables.indexOf(names.get(tbIndex))>=0) |
{ |
{ |
Line 431 class Convert
|
Line 616 class Convert
|
|
|
} |
} |
} |
} |
// System.out.println(names); |
|
/* |
|
if (idVal == "") |
|
stm.executeUpdate("INSERT INTO " + DBBean.getQC() + box.getSelectedItem() + DBBean.getQC() + " (" + DBBean.getQC() + columnName + DBBean.getQC() + ") VALUES ('" + value + "') "); |
|
else |
|
stm.executeUpdate("UPDATE " + DBBean.getQC() + box.getSelectedItem() + DBBean.getQC() + " SET " + DBBean.getQC() + columnName + DBBean.getQC() + "='" + value + "' WHERE ID='" + idVal + "' "); |
|
*/ |
|
|
|
// Vector[] result2=beanDest.getQueryData(names.get(tbIndex).toString()); |
|
// print results to screen |
|
/* for (int i = 0; i < result[1].size(); ++i) |
|
{ |
|
//print Header |
|
// System.out.println(" "+result[1].get(i)+" "+result2[1].get(i)+" "+i); |
|
}*/ |
|
// System.out.println(); |
|
dialog.title.setText("Writing table data ..."); |
dialog.title.setText("Writing table data ..."); |
|
|
//for (int j = 0; j < result[0].size(); ++j) |
// prepare the insert statement |
int j=-1; |
int j=-1; |
Vector row = null; |
Vector row = null; |
command = new StringBuffer(); |
command = new StringBuffer(); |
Line 464 class Convert
|
Line 633 class Convert
|
command.append("?)"); |
command.append("?)"); |
PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString()); |
PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString()); |
System.out.println(command); |
System.out.println(command); |
int rowCount= bean.getRowCount(query); |
int rowCount= (idField!="") ? myIds.size():bean.getRowCount(query); |
|
Vector vec = new Vector(myIds); |
|
int endIndex = -1; |
|
String tempQuery=query;String tempID = bean.getQC()+idField+bean.getQC(); |
|
if (!idField.equals("")) |
|
{ |
|
long startTime = System.currentTimeMillis(); |
|
while (true) |
|
{ |
|
dialog.title.setText("Retrieving next ID Vector "); |
|
myIds = bean.getIDVector(ids.get(tbIndex).toString(), (String) names.get(tbIndex), tempQuery, numHits); |
|
if(myIds.isEmpty()) break; |
|
vec = new Vector(myIds); |
|
rowCount = vec.size()/numIntervalls; |
|
System.out.println("ID LIST SIZE " + Math.round((double) myIds.size() / (double) numIntervalls) + " " + myIds.size()); |
|
deltaID = (int) Math.round((double) myIds.size() / (double) numIntervalls); |
|
|
|
for (int k = 0; k < vec.size() - deltaID; k = k + deltaID) |
|
{ |
|
System.out.println(vec.get(k) + " " + vec.get(k + deltaID) + " " + vec.lastElement()); |
|
if (query.indexOf("where") > 0) |
|
tempQuery = query + " and " + tempID + ">=" + vec.get(k) + " and " + tempID + "<=" + vec.get(k + deltaID); |
|
else |
|
tempQuery = query + "where " + tempID + ">=" + vec.get(k) + " and " + tempID + "<=" + vec.get(k + deltaID); |
|
System.out.println(tempQuery); |
|
dialog.title.setText("Reading table data ..."); |
|
|
|
bean.makeQuery(tempQuery, deltaID); |
|
dialog.title.setText("Writing table data ..."); |
|
|
|
command = writeDatainDestTable(dialog, command, k, pstm, rowCount); |
|
endIndex = k + deltaID; |
|
} |
|
if ((vec.size() - 1) % numIntervalls == 0) |
|
System.out.println("fits"); |
|
else |
|
{ |
|
if (query.indexOf("where") > 0) |
|
tempQuery = query + " and " + tempID + ">=" + vec.get(endIndex) + " and " + tempID + "<=" + vec.lastElement(); |
|
else |
|
tempQuery = query + "where " + tempID + ">=" + vec.get(endIndex) + " and " + tempID + "<=" + vec.lastElement(); |
|
System.out.println(tempQuery); |
|
dialog.title.setText("Reading table data ..."); |
|
bean.makeQuery(tempQuery, 0); |
|
dialog.title.setText("Writing table data ..."); |
|
command = writeDatainDestTable(dialog, command, j, pstm, rowCount); |
|
|
|
System.out.println(" last intervall from " + vec.get(endIndex) + " " + vec.lastElement()); |
|
command = writeDatainDestTable(dialog, command, endIndex, pstm, rowCount); |
|
} |
|
if (query.indexOf("where") > 0) |
|
tempQuery = query + " and " + tempID + ">" + vec.lastElement(); |
|
else |
|
tempQuery = query + " where " + tempID + ">" + vec.lastElement(); |
|
|
|
} |
|
long endTime = System.currentTimeMillis(); |
|
System.out.println("Time for incremental convert elapsed "+(endTime-startTime)); |
|
} else |
|
{ |
|
long startTime = System.currentTimeMillis(); |
|
|
|
bean.makeQuery(query, 0); |
|
command = writeDatainDestTable(dialog, command, j, pstm, rowCount); |
|
long endTime = System.currentTimeMillis(); |
|
System.out.println("Time for old convert elapsed "+(endTime-startTime)); |
|
|
|
} |
|
} |
|
} catch(Exception e) |
|
{ |
|
System.out.println("Error while connecting to database "+ e); |
|
dialog.setVisible(false); |
|
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream(); |
|
java.io.PrintStream stream = new java.io.PrintStream(b); |
|
stream.print(command+"\n\n"); |
|
e.printStackTrace(stream); |
|
FM2SQL.showErrorDialog(b.toString(), "Error occured !"); |
|
|
|
} |
|
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
|
|
dialog.setVisible(false); |
|
} |
|
private static StringBuffer writeDatainDestTable(FM2SQL.ProgressDialog dialog, StringBuffer command, int j, PreparedStatement pstm, int rowCount) throws Exception, SQLException |
|
{ |
|
Vector row; |
while((row=bean.getNextRow())!=null) |
while((row=bean.getNextRow())!=null) |
{ |
{ |
j++; |
j++; |
Line 518 class Convert
|
Line 776 class Convert
|
dialog.progress.setValue((int) (((double) (j + 1) / (double) rowCount) * 100.0)); |
dialog.progress.setValue((int) (((double) (j + 1) / (double) rowCount) * 100.0)); |
// System.out.println( (int)(((double)(j+1)/(double)result[0].size())*100.0)+" "+result[0].size()+" "+j); |
// System.out.println( (int)(((double)(j+1)/(double)result[0].size())*100.0)+" "+result[0].size()+" "+j); |
command = null; |
command = null; |
}// to for loop |
}// to while loop |
|
return command; |
} |
|
} catch(Exception e) |
|
{ |
|
System.out.println("Error while connecting to database "+ e); |
|
dialog.setVisible(false); |
|
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
java.io.ByteArrayOutputStream b = new java.io.ByteArrayOutputStream(); |
|
java.io.PrintStream stream = new java.io.PrintStream(b); |
|
stream.print(command+"\n\n"); |
|
e.printStackTrace(stream); |
|
FM2SQL.showErrorDialog(b.toString(), "Error occured !"); |
|
|
|
} |
|
dialog.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
FM2SQL.fmInstance.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); |
|
|
|
dialog.setVisible(false); |
|
} |
} |
|
|
public static String convertText(String newName) |
public static String convertText(String newName) |
Line 619 class Convert
|
Line 859 class Convert
|
{ |
{ |
alterMe.setCharAt(j, '_'); |
alterMe.setCharAt(j, '_'); |
|
|
|
} else if (alterMe.charAt(j) == '?') |
|
{ |
|
// changed ? to _ because of update statement |
|
alterMe.setCharAt(j,'_'); |
|
// length = length + 1; |
|
// j=j+1; |
|
System.out.println(alterMe); |
} |
} |
|
|
else if (alterMe.charAt(j) == '.') |
else if (alterMe.charAt(j) == '.') |
{ |
{ |
if(j==length-1) |
if(j==length-1) |
Line 627 class Convert
|
Line 875 class Convert
|
alterMe.delete(j, j); |
alterMe.delete(j, j); |
length--; |
length--; |
} |
} |
|
else |
|
alterMe.setCharAt(j,'_'); |
} |
} |
|
|
++j; |
++j; |
Line 786 class Convert
|
Line 1036 class Convert
|
Vector layouts = new Vector(); |
Vector layouts = new Vector(); |
Vector selects = new Vector(); |
Vector selects = new Vector(); |
Vector creates = new Vector(); |
Vector creates = new Vector(); |
|
Vector ids = new Vector(); |
int mode = -1; |
int mode = -1; |
|
|
try |
try |
Line 802 class Convert
|
Line 1053 class Convert
|
layouts = new Vector(); |
layouts = new Vector(); |
selects = new Vector(); |
selects = new Vector(); |
creates = new Vector(); |
creates = new Vector(); |
|
ids = new Vector(); |
// parse dataBase |
// parse dataBase |
Node node = root.find("convert/source/database/url", new int[] { 1, 1, i, 1 }); |
Node node = root.find("convert/source/database/url", new int[] { 1, 1, i, 1 }); |
Node node1 = root.find("convert/source/database/user", new int[] { 1, 1, i, 1, 1 }); |
Node node1 = root.find("convert/source/database/user", new int[] { 1, 1, i, 1, 1 }); |
Node node2 = root.find("convert/source/database/password", new int[] { 1, 1, i, 1, 1 }); |
Node node2 = root.find("convert/source/database/password", new int[] { 1, 1, i, 1, 1 }); |
Node node3 = root.find("convert/source/database", new int[] { 1, 1, i}); |
Node node3 = root.find("convert/source/database", new int[] { 1, 1, i}); |
Node nodeMode = root.find("convert/source/database/mode/", new int[] {1, 1, i, 1,1}); |
Node nodeMode = root.find("convert/source/database/mode", new int[] {1, 1, i, 1,1}); |
|
|
if(node3== null) throw new Error("parse error database tag missing"); |
if(node3== null) throw new Error("parse error database tag missing"); |
if(node==null) throw new Error("parse error url tag missing"); |
if(node==null) throw new Error("parse error url tag missing"); |
Line 858 class Convert
|
Line 1109 class Convert
|
// if(node6==null) throw new Error("parse error create tag missing"); |
// if(node6==null) throw new Error("parse error create tag missing"); |
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"); |
|
System.out.println("id was "+id); |
if(name==null) throw new Error("parse error required table tag attribute name missing"); |
if(name==null) throw new Error("parse error required table tag attribute name missing"); |
if(layout==null) layout =""; |
if(layout==null) layout =""; |
|
if(id==null) id = ""; |
if(name.equals("")) throw new Error("parse error table tag attribute must not be empty"); |
if(name.equals("")) throw new Error("parse error table tag attribute must not be empty"); |
tables.add(name); |
tables.add(name); |
layouts.add(layout); |
layouts.add(layout); |
|
ids.add(id); |
String query = (node5==null) ? "":node5.getCharacters(); |
String query = (node5==null) ? "":node5.getCharacters(); |
if(query.equals("")) System.err.println("Warning empty select tag or select tag missing !!"); |
if(query.equals("")) System.err.println("Warning empty select tag or select tag missing !!"); |
query = (query.equals("")) ? "select * from "+database.getQC()+name+database.getQC():query; |
query = (query.equals("")) ? "select * from "+database.getQC()+name+database.getQC():query; |
Line 872 class Convert
|
Line 1127 class Convert
|
creates.add(""); |
creates.add(""); |
|
|
} |
} |
databases.add(new DataBase(database, tables, layouts, selects,creates,mode)); |
databases.add(new DataBase(database, tables, layouts, selects,creates,ids,mode)); |
} |
} |
DBBean database = new DBBean(); |
DBBean database = new DBBean(); |
// parse dataBase |
// parse dataBase |
Line 889 class Convert
|
Line 1144 class Convert
|
for (Iterator iter = databases.iterator(); iter.hasNext();) |
for (Iterator iter = databases.iterator(); iter.hasNext();) |
{ |
{ |
DataBase db = (DataBase) iter.next(); |
DataBase db = (DataBase) iter.next(); |
convertBatch(db.bean,database,db.tables,db.layouts,db.selects,db.creates); |
if(mode!=DataBase.UPDATE_MODE) |
|
convertBatch(db.bean,database,db.tables,db.layouts,db.selects,db.creates,mode); |
|
else |
|
update(db.bean.url,database.url,db.tables,db.layouts,db.selects,db.creates,db.ids,mode); |
|
|
} |
} |
// printContents(node3); |
// printContents(node3); |
Line 1018 class Convert
|
Line 1276 class Convert
|
Vector layouts = new Vector(); |
Vector layouts = new Vector(); |
Vector selects = new Vector(); |
Vector selects = new Vector(); |
Vector creates = new Vector(); |
Vector creates = new Vector(); |
|
Vector ids = new Vector(); |
|
|
int mode = -1; |
int mode = -1; |
try |
try |
{ |
{ |
Line 1033 class Convert
|
Line 1293 class Convert
|
layouts = new Vector(); |
layouts = new Vector(); |
selects = new Vector(); |
selects = new Vector(); |
creates = new Vector(); |
creates = new Vector(); |
|
ids = new Vector(); |
// parse dataBase |
// parse dataBase |
Node node = root.find("convert/source/database/url", new int[] { 1, 1, i, 1 }); |
Node node = root.find("convert/source/database/url", new int[] { 1, 1, i, 1 }); |
Node node1 = root.find("convert/source/database/user", new int[] { 1, 1, i, 1, 1 }); |
Node node1 = root.find("convert/source/database/user", new int[] { 1, 1, i, 1, 1 }); |
Line 1091 class Convert
|
Line 1351 class Convert
|
// if(node6==null) throw new Error("parse error create tag missing"); |
// if(node6==null) throw new Error("parse error create tag missing"); |
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"); |
|
System.out.println("id was "+id); |
|
|
if(name==null) throw new Error("parse error required table tag attribute name missing"); |
if(name==null) throw new Error("parse error required table tag attribute name missing"); |
if(layout==null) layout =""; |
if(layout==null) layout =""; |
|
if(id == null) id=""; |
if(name.equals("")) throw new Error("parse error table tag attribute must not be empty"); |
if(name.equals("")) throw new Error("parse error table tag attribute must not be empty"); |
tables.add(name); |
tables.add(name); |
layouts.add(layout); |
layouts.add(layout); |
|
ids.add(id); |
String query = (node5==null) ? "":node5.getCharacters(); |
String query = (node5==null) ? "":node5.getCharacters(); |
if(query.equals("")) System.err.println("Warning empty select tag or select tag missing !!"); |
if(query.equals("")) System.err.println("Warning empty select tag or select tag missing !!"); |
query = (query.equals("")) ? "select * from "+database.getQC()+name+database.getQC():query; |
query = (query.equals("")) ? "select * from "+database.getQC()+name+database.getQC():query; |
Line 1105 class Convert
|
Line 1370 class Convert
|
creates.add(""); |
creates.add(""); |
|
|
} |
} |
databases.add(new DataBase(database, tables, layouts, selects,creates,mode)); |
databases.add(new DataBase(database, tables, layouts, selects,creates,ids,mode)); |
} |
} |
DBBean database = new DBBean(); |
DBBean database = new DBBean(); |
// parse dataBase |
// parse dataBase |
Line 1118 class Convert
|
Line 1383 class Convert
|
System.out.println(url); |
System.out.println(url); |
database.setURL(url.trim()); |
database.setURL(url.trim()); |
database.setUserAndPasswd(user.trim(), password.trim()); |
database.setUserAndPasswd(user.trim(), password.trim()); |
databases.add(new DataBase(database,null,null,null,null,0)); |
databases.add(new DataBase(database,null,null,null,null,null,0)); |
//databases.add(database); |
//databases.add(database); |
/* for (Iterator iter = databases.iterator(); iter.hasNext();) |
/* for (Iterator iter = databases.iterator(); iter.hasNext();) |
{ |
{ |
Line 1198 public static class DataBase
|
Line 1463 public static class DataBase
|
Vector selects; |
Vector selects; |
Vector layouts; |
Vector layouts; |
Vector tables; |
Vector tables; |
|
Vector ids; |
final static int CONVERT_MODE = 1; |
final static int CONVERT_MODE = 1; |
final static int APPEND_MODE = 2; |
final static int APPEND_MODE = 2; |
final static int UPDATE_MODE = 3; |
final static int UPDATE_MODE = 3; |
int mode = -1; |
int mode = -1; |
|
|
public DataBase(DBBean bean,Vector tables,Vector layouts,Vector selects,Vector creates,int mode) |
public DataBase(DBBean bean,Vector tables,Vector layouts,Vector selects,Vector creates,Vector ids,int mode) |
{ |
{ |
this.bean = bean; |
this.bean = bean; |
this.tables = tables; |
this.tables = tables; |
this.layouts = layouts; |
this.layouts = layouts; |
this.selects = selects; |
this.selects = selects; |
this.creates = creates; |
this.creates = creates; |
|
this.ids = ids; |
this.mode = mode; |
this.mode = mode; |
|
this.bean.setIDVector(ids); |
} |
} |
public void exportToXML(BufferedWriter buffr) throws Exception |
public void exportToXML(BufferedWriter buffr) throws Exception |
{ |
{ |
|
// ids=bean.getIDVector(); |
buffr.write(" <database>\n"); |
buffr.write(" <database>\n"); |
buffr.write(" <url>"+bean.url+"</url>\n"); |
buffr.write(" <url>"+bean.url+"</url>\n"); |
buffr.write(" <user>"+bean.user+"</user>\n"); |
buffr.write(" <user>"+bean.user+"</user>\n"); |
Line 1236 public static class DataBase
|
Line 1505 public static class DataBase
|
String layout=(String)layouts.get(index); |
String layout=(String)layouts.get(index); |
String select=(String)selects.get(index); |
String select=(String)selects.get(index); |
String create=(String)creates.get(index); |
String create=(String)creates.get(index); |
|
String id=(String)ids.get(index); |
|
|
buffr.write(" <table name = \""+table+"\" layout = \""+layout+"\">\n"); |
buffr.write(" <table name = \""+table+"\" layout = \""+layout+"\" id = \""+id+"\" >\n"); |
buffr.write(" <select>"+ convertToEntities(select)+"</select>\n"); |
buffr.write(" <select>"+ convertToEntities(select)+"</select>\n"); |
if(!create.equals("")) |
if(!create.equals("")) |
buffr.write(" <create>"+create+" </create>\n"); |
buffr.write(" <create>"+create+" </create>\n"); |