version 1.1.1.1, 2003/12/05 11:46:39
|
version 1.6, 2004/01/13 12:15:38
|
Line 63 class Convert
|
Line 63 class Convert
|
} |
} |
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) throws Exception |
{ |
{ |
// @TODO Convert change to convert row wise |
|
/*FM2SQL.ProgressDialog dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance); |
/*FM2SQL.ProgressDialog dialog = new FM2SQL.ProgressDialog(FM2SQL.fmInstance); |
dialog.setTitle("Conversion running ..."); |
dialog.setTitle("Conversion running ..."); |
dialog.title.setText("Getting table data ..."); |
dialog.title.setText("Getting table data ..."); |
Line 214 class Convert
|
Line 213 class Convert
|
//dialog.title.setText("Writing table data ..."); |
//dialog.title.setText("Writing table data ..."); |
Vector row = null; |
Vector row = null; |
//for (int j = 0; j < result[0].size(); ++j) |
//for (int j = 0; j < result[0].size(); ++j) |
|
command = new StringBuffer(); |
|
|
|
command.append("INSERT INTO "); |
|
command.append(beanDest.getQC()); |
|
command.append(convertText((String) names.get(tbIndex))); |
|
command.append(beanDest.getQC()); |
|
command.append(" values ( "); |
|
|
|
for (int i = 0; i < bean.getColumnNames().size() - 1; ++i) |
|
command.append("?,"); |
|
command.append("?)"); |
|
PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString()); |
|
System.out.println(command); |
while((row=bean.getNextRow())!=null) |
while((row=bean.getNextRow())!=null) |
{ |
{ |
//Vector row = (Vector) result[0].get(j); |
/* //Vector row = (Vector) result[0].get(j); |
command = new StringBuffer(); |
command = new StringBuffer(); |
|
|
command.append("INSERT INTO "); |
command.append("INSERT INTO "); |
Line 224 class Convert
|
Line 236 class Convert
|
command.append(convertText((String) names.get(tbIndex))); |
command.append(convertText((String) names.get(tbIndex))); |
command.append(beanDest.getQC()); |
command.append(beanDest.getQC()); |
command.append(" values ( "); |
command.append(" values ( "); |
|
*/ |
//print rows |
//print rows |
Object obj = null; |
Object obj = null; |
|
/* |
for(int k=0;k<row.size()-1;++k) |
for(int k=0;k<row.size()-1;++k) |
{ |
{ |
obj = row.get(k); |
obj = row.get(k); |
Line 254 class Convert
|
Line 268 class Convert
|
// dialog.progress.setValue((int)(((double)(j+1)/(double)result[0].size())*100.0)); |
// dialog.progress.setValue((int)(((double)(j+1)/(double)result[0].size())*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; |
|
*/ |
|
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.execute(); |
|
|
}// to for loop |
}// to for loop |
|
|
} |
} |
Line 279 class Convert
|
Line 307 class Convert
|
|
|
|
|
|
|
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,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 424 class Convert
|
Line 452 class Convert
|
//for (int j = 0; j < result[0].size(); ++j) |
//for (int j = 0; j < result[0].size(); ++j) |
int j=-1; |
int j=-1; |
Vector row = null; |
Vector row = null; |
|
command = new StringBuffer(); |
|
|
|
command.append("INSERT INTO "); |
|
command.append(beanDest.getQC()); |
|
command.append(convertText((String) names.get(tbIndex))); |
|
command.append(beanDest.getQC()); |
|
command.append(" values ( "); |
|
|
|
for(int i=0;i<bean.getColumnNames().size()-1;++i) command.append("?,"); |
|
command.append("?)"); |
|
PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString()); |
|
System.out.println(command); |
int rowCount= bean.getRowCount(query); |
int rowCount= bean.getRowCount(query); |
while((row=bean.getNextRow())!=null) |
while((row=bean.getNextRow())!=null) |
{ |
{ |
j++; |
j++; |
// row = (Vector) result[0].get(j); |
// row = (Vector) result[0].get(j); |
command = new StringBuffer(); |
/* command = new StringBuffer(); |
|
|
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(convertText((String) names.get(tbIndex))); |
command.append(beanDest.getQC()); |
command.append(beanDest.getQC()); |
command.append(" values ( "); |
command.append(" values ( "); |
|
*/ |
//print rows |
//print rows |
Object obj = null; |
Object obj = null; |
for(int k=0;k<row.size()-1;++k) |
/* for(int k=0;k<row.size()-1;++k) |
{ |
{ |
obj = row.get(k); |
obj = row.get(k); |
//System.out.println("row "+obj+" "+k); |
//System.out.println("row "+obj+" "+k); |
if(obj!=null&&!(obj instanceof ArrayList)) |
if(obj!=null&&!(obj instanceof ArrayList)) |
command.append("'"+convertUml(new String(obj.toString().getBytes("UTF-8"),"UTF-8"))+"',"); |
command.append("'"+convertUml(obj.toString())+"',"); |
else if(obj!=null&& obj instanceof ArrayList) |
else if(obj!=null&& obj instanceof ArrayList) |
command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"',"); |
command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"',"); |
else command.append("NULL,"); |
else command.append("NULL,"); |
} |
} |
obj = row.get(row.size() - 1); |
obj = row.get(row.size() - 1); |
if (obj != null && !(obj instanceof ArrayList)) |
if (obj != null && !(obj instanceof ArrayList)) |
command.append("'"+convertUml(new String(obj.toString().getBytes("UTF-8"),"UTF-8"))+"')"); |
command.append("'"+convertUml(obj.toString())+"')"); |
else |
else |
if(obj!=null&& obj instanceof ArrayList) |
if(obj!=null&& obj instanceof ArrayList) |
command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"')"); //command.append(obj.toString()+")"); |
command.append("'"+convertUml(((ArrayList)obj).get(0).toString())+"')"); //command.append(obj.toString()+")"); |
else command.append("NULL)"); |
else command.append("NULL)"); |
|
*/ |
//command.append("'"+row.get(row.size()-1)+"')"); |
//command.append("'"+row.get(row.size()-1)+"')"); |
//command.append(" )"); |
//command.append(" )"); |
// for(int k=0;k<row.size();++k) |
// for(int k=0;k<row.size();++k) |
Line 462 class Convert
|
Line 504 class Convert
|
// System.out.println(); |
// System.out.println(); |
// System.out.println(command+" "+j+" "+row.size()+" "+ ((Vector)result2[0].get(j)).size()); |
// System.out.println(command+" "+j+" "+row.size()+" "+ ((Vector)result2[0].get(j)).size()); |
// System.out.println(command); |
// System.out.println(command); |
stm.executeUpdate(command.toString()); |
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.execute(); |
|
//stm.executeUpdate(command.toString()); |
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; |
Line 493 class Convert
|
Line 545 class Convert
|
StringBuffer alterMe = new StringBuffer(newName.trim().toLowerCase()); |
StringBuffer alterMe = new StringBuffer(newName.trim().toLowerCase()); |
int length = alterMe.length(); |
int length = alterMe.length(); |
int j = 0; |
int j = 0; |
|
int index=alterMe.indexOf(".fp5"); |
|
if ( index >= 0 ) |
|
{ |
|
alterMe.delete(index, index + 4); |
|
length = length - 4; |
|
} |
|
|
while (j < length) |
while (j < length) |
{ |
{ |
if (alterMe.charAt(j) == ' ') |
if (alterMe.charAt(j) == ' ') |
Line 561 class Convert
|
Line 620 class Convert
|
alterMe.setCharAt(j, '_'); |
alterMe.setCharAt(j, '_'); |
|
|
} |
} |
|
else if (alterMe.charAt(j) == '.') |
|
{ |
|
if(j==length-1) |
|
{ |
|
alterMe.delete(j, j); |
|
length--; |
|
} |
|
} |
|
|
|
++j; |
|
} |
|
return alterMe.toString(); |
|
} |
|
public static String convertToEntities(String newName) |
|
{ |
|
StringBuffer alterMe = new StringBuffer(newName.trim()); |
|
int length = alterMe.length(); |
|
int j = 0; |
|
|
|
while (j < length) |
|
{ |
|
|
|
if (alterMe.charAt(j) == '>') |
|
{ |
|
alterMe.setCharAt(j, '&'); |
|
alterMe.insert(j + 1, "gt;"); |
|
length = length + 2; |
|
if (j < length - 1) |
|
j = j + 1; |
|
|
|
} else if (alterMe.charAt(j) == '<') |
|
{ |
|
alterMe.setCharAt(j, '&'); |
|
alterMe.insert(j + 1, "lt;"); |
|
length = length + 2; |
|
if (j < length - 1) |
|
j = j + 1; |
|
|
|
} |
++j; |
++j; |
} |
} |
return alterMe.toString(); |
return alterMe.toString(); |
Line 680 class Convert
|
Line 777 class Convert
|
{ |
{ |
boolean finished = false; |
boolean finished = false; |
// parse string and build document tree |
// parse string and build document tree |
Node root = new Xparse().parse(sb.toString()); |
Xparse parser =new Xparse(); |
|
parser.changeEntities = true; |
|
Node root = parser.parse(sb.toString()); |
// printContents(root); |
// printContents(root); |
Vector databases= new Vector(); |
Vector databases= new Vector(); |
Vector tables = new Vector(); |
Vector tables = new Vector(); |
Vector layouts = new Vector(); |
Vector layouts = new Vector(); |
Vector selects = new Vector(); |
Vector selects = new Vector(); |
Vector creates = new Vector(); |
Vector creates = new Vector(); |
|
int mode = -1; |
|
|
try |
try |
{ |
{ |
Line 708 class Convert
|
Line 808 class Convert
|
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}); |
|
|
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"); |
if(node1==null) throw new Error("parse error user tag missing"); |
if(node1==null) throw new Error("parse error user tag missing"); |
Line 720 class Convert
|
Line 822 class Convert
|
System.out.println(node.name + " " + node.getCharacters()); |
System.out.println(node.name + " " + node.getCharacters()); |
System.out.println(node1.name + " " + node1.getCharacters()); |
System.out.println(node1.name + " " + node1.getCharacters()); |
System.out.println(node2.name + " " + node2.getCharacters()); |
System.out.println(node2.name + " " + node2.getCharacters()); |
|
String modeString = ""; |
|
if (nodeMode == null) |
|
modeString = "convert"; |
|
else |
|
modeString = nodeMode.getCharacters(); |
|
if (modeString.equals("convert")) |
|
mode = DataBase.CONVERT_MODE; |
|
else |
|
if (modeString.equals("append")) |
|
mode = DataBase.APPEND_MODE; |
|
else |
|
if (modeString.equals("update")) |
|
mode = DataBase.UPDATE_MODE; |
// if(node3!=null) |
// if(node3!=null) |
// System.out.println(node3.name); |
// System.out.println(node3.name); |
|
|
Line 758 class Convert
|
Line 872 class Convert
|
creates.add(""); |
creates.add(""); |
|
|
} |
} |
databases.add(new DataBase(database, tables, layouts, selects,creates)); |
databases.add(new DataBase(database, tables, layouts, selects,creates,mode)); |
} |
} |
DBBean database = new DBBean(); |
DBBean database = new DBBean(); |
// parse dataBase |
// parse dataBase |
Line 895 class Convert
|
Line 1009 class Convert
|
|
|
boolean finished = false; |
boolean finished = false; |
// parse string and build document tree |
// parse string and build document tree |
Node root = new Xparse().parse(sb.toString()); |
Xparse parser =new Xparse(); |
|
parser.changeEntities = true; |
|
Node root = parser.parse(sb.toString()); |
// printContents(root); |
// printContents(root); |
Vector databases= new Vector(); |
Vector databases= new Vector(); |
Vector tables = new Vector(); |
Vector tables = new Vector(); |
Vector layouts = new Vector(); |
Vector layouts = new Vector(); |
Vector selects = new Vector(); |
Vector selects = new Vector(); |
Vector creates = new Vector(); |
Vector creates = new Vector(); |
|
int mode = -1; |
try |
try |
{ |
{ |
Node tempNode = root.find("convert/source", new int[] { 1, 1 }); |
Node tempNode = root.find("convert/source", new int[] { 1, 1 }); |
Line 923 class Convert
|
Line 1039 class Convert
|
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 }); |
|
|
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"); |
if(node1==null) throw new Error("parse error user tag missing"); |
if(node1==null) throw new Error("parse error user tag missing"); |
Line 935 class Convert
|
Line 1053 class Convert
|
System.out.println(node.name + " " + node.getCharacters()); |
System.out.println(node.name + " " + node.getCharacters()); |
System.out.println(node1.name + " " + node1.getCharacters()); |
System.out.println(node1.name + " " + node1.getCharacters()); |
System.out.println(node2.name + " " + node2.getCharacters()); |
System.out.println(node2.name + " " + node2.getCharacters()); |
|
String modeString = ""; |
|
if (nodeMode == null) |
|
modeString = "convert"; |
|
else |
|
modeString = nodeMode.getCharacters(); |
|
if (modeString.equals("convert")) |
|
mode = DataBase.CONVERT_MODE; |
|
else |
|
if (modeString.equals("append")) |
|
mode = DataBase.APPEND_MODE; |
|
else |
|
if (modeString.equals("update")) |
|
mode = DataBase.UPDATE_MODE; |
|
|
|
|
// if(node3!=null) |
// if(node3!=null) |
// System.out.println(node3.name); |
// System.out.println(node3.name); |
Line 973 class Convert
|
Line 1105 class Convert
|
creates.add(""); |
creates.add(""); |
|
|
} |
} |
databases.add(new DataBase(database, tables, layouts, selects,creates)); |
databases.add(new DataBase(database, tables, layouts, selects,creates,mode)); |
} |
} |
DBBean database = new DBBean(); |
DBBean database = new DBBean(); |
// parse dataBase |
// parse dataBase |
Line 986 class Convert
|
Line 1118 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)); |
databases.add(new DataBase(database,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 1066 public static class DataBase
|
Line 1198 public static class DataBase
|
Vector selects; |
Vector selects; |
Vector layouts; |
Vector layouts; |
Vector tables; |
Vector tables; |
public DataBase(DBBean bean,Vector tables,Vector layouts,Vector selects,Vector creates) |
final static int CONVERT_MODE = 1; |
|
final static int APPEND_MODE = 2; |
|
final static int UPDATE_MODE = 3; |
|
int mode = -1; |
|
|
|
public DataBase(DBBean bean,Vector tables,Vector layouts,Vector selects,Vector creates,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.mode = mode; |
} |
} |
public void exportToXML(BufferedWriter buffr) throws Exception |
public void exportToXML(BufferedWriter buffr) throws Exception |
{ |
{ |
Line 1080 public static class DataBase
|
Line 1218 public static class DataBase
|
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"); |
buffr.write(" <password>"+bean.passwd+"</password>\n"); |
buffr.write(" <password>"+bean.passwd+"</password>\n"); |
|
String modeString =""; |
|
if (mode == CONVERT_MODE) |
|
modeString = "convert"; |
|
else |
|
if (mode == APPEND_MODE) |
|
modeString = "append"; |
|
else |
|
if (mode == UPDATE_MODE) |
|
modeString = "update"; |
|
|
|
buffr.write(" <mode>"+ modeString+"</mode>\n"); |
int index = 0; |
int index = 0; |
while(index<tables.size()) |
while(index<tables.size()) |
{ |
{ |
Line 1090 public static class DataBase
|
Line 1238 public static class DataBase
|
String create=(String)creates.get(index); |
String create=(String)creates.get(index); |
|
|
buffr.write(" <table name = \""+table+"\" layout = \""+layout+"\">\n"); |
buffr.write(" <table name = \""+table+"\" layout = \""+layout+"\">\n"); |
buffr.write(" <select>"+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"); |
buffr.write(" </table>\n"); |
buffr.write(" </table>\n"); |