version 1.46, 2004/03/12 11:48:57
|
version 1.47, 2004/03/15 12:30:51
|
Line 1671 class Convert
|
Line 1671 class Convert
|
int endIndex = -1; |
int endIndex = -1; |
String tempQuery = query; |
String tempQuery = query; |
String destQuery =query.replaceAll(names.get(tbIndex).toString(),destTableName); |
String destQuery =query.replaceAll(names.get(tbIndex).toString(),destTableName); |
String tempQueryDest = destQuery; |
String tempQueryDest = destQuery.substring(0,destQuery.lastIndexOf(destTableName)+destTableName.length()+1); |
System.out.println("new Query "+tempQueryDest); |
System.out.println("new Query "+tempQueryDest); |
if (!idField.equals("")) |
if (!idField.equals("")) |
{ |
{ |
Line 1693 class Convert
|
Line 1693 class Convert
|
rowCount = vec.size(); |
rowCount = vec.size(); |
// Deletion will work this way |
// Deletion will work this way |
Vector deleted=new Vector(vec); |
Vector deleted=new Vector(vec); |
deleted.remove(0); |
|
Vector linesToDelete=new Vector(vecDest); |
Vector linesToDelete=new Vector(vecDest); |
// remove all lines that should not be deleted |
// remove all lines that should not be deleted |
linesToDelete.removeAll(deleted); |
linesToDelete.removeAll(deleted); |
Line 1701 class Convert
|
Line 1700 class Convert
|
/// @TODO complete delete task remove query show lines to be deleted let user choose if he wants that |
/// @TODO complete delete task remove query show lines to be deleted let user choose if he wants that |
System.out.println("number of lines to be deleted "+linesToDelete.size()); |
System.out.println("number of lines to be deleted "+linesToDelete.size()); |
deltaID = (int) Math.round((double) myIds.size() / (double) numIntervalls); |
deltaID = (int) Math.round((double) myIds.size() / (double) numIntervalls); |
if (vec.size() <= numIntervalls) |
|
{ |
|
endIndex = 0; |
|
deltaID = vec.size(); |
|
} |
|
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) + "'"; |
|
if (destQuery.indexOf("where") > 0) |
|
tempQueryDest = destQuery + " and " + tempIDdest + ">='" + vec.get(k) + "' and " + tempIDdest + "<='" + vec.get(k + deltaID) + "'"; |
|
else |
|
tempQueryDest = destQuery + " where " + tempIDdest + ">='" + vecDest.get(k) + "' and " + tempIDdest + "<='" + vecDest.get(k + deltaID) + "'"; |
|
|
|
System.out.println(tempQuery); |
|
System.out.println(tempQueryDest); |
|
|
|
if (dialog != null) |
|
dialog.title.setText("Reading table data ..."); |
|
|
|
bean.makeQuery(tempQuery, deltaID); |
|
beanDest.makeQuery(tempQueryDest, deltaID); |
|
|
|
if (dialog != null) |
|
dialog.title.setText("Writing table data ..."); |
|
|
|
// command = writeDatainDestTable(dialog, command, k, pstm, rowCount,delimiter); |
|
endIndex = k + deltaID; |
|
} |
|
System.out.println(endIndex); |
|
//all data written ? if not write last chunk of data |
|
if (endIndex == vec.size() - 1) |
|
System.out.println("fits"); |
|
else |
|
{ |
|
System.out.println(" last intervall from " + vec.get(endIndex) + " " + vec.lastElement()); |
|
|
|
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() + "'"; |
|
if (destQuery.indexOf("where") > 0) |
|
tempQueryDest = destQuery + " and " + tempIDdest + ">='" + vec.get(endIndex) + "' and " + tempIDdest + "<='" + vec.lastElement() + "'"; |
|
else |
|
tempQueryDest = destQuery + " where " + tempIDdest + ">='" + vec.get(endIndex) + "' and " + tempIDdest + "<='" + vec.lastElement() + "'"; |
|
|
|
System.out.println(tempQuery); |
|
if (dialog != null) |
|
dialog.title.setText("Reading table data ..."); |
|
bean.makeQuery(tempQuery, 0); |
|
beanDest.makeQuery(tempQueryDest, 0); |
|
|
|
if (dialog != null) |
|
dialog.title.setText("Writing table data ..."); |
|
// command = writeDatainDestTable(dialog, command, endIndex, pstm, rowCount,delimiter); |
|
} |
|
// prepare new query for next chunk |
|
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 |
|
{ |
|
// read and write all in one big chunk |
|
long startTime = System.currentTimeMillis(); |
|
|
|
bean.makeQuery(query, 0); |
|
command = writeDatainDestTable(dialog, command, j, pstm, rowCount,delimiter); |
|
long endTime = System.currentTimeMillis(); |
|
System.out.println("Time for old convert elapsed " + (endTime - startTime)); |
|
|
|
}*/ |
|
|
|
if (true) |
|
System.exit(0); |
|
//beanDest.setConnection("jdbc:postgresql://erebos/test3"); |
|
beanDest.setConnection(destination); |
beanDest.setConnection(destination); |
|
|
Statement stm = beanDest.getConnection().createStatement(); |
Statement stm = beanDest.getConnection().createStatement(); |
Line 1794 class Convert
|
Line 1710 class Convert
|
tables = beanDest.getTableNames(); |
tables = beanDest.getTableNames(); |
// 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); |
|
|
|
if (dialog != null) |
if (dialog != null) |
dialog.title.setText("Updating table data ..."); |
dialog.title.setText(" Deleting table data ..."); |
|
|
int j = -1; |
int j = -1; |
|
|
Vector row = null; |
Vector row = null; |
command = new StringBuffer(); |
command = new StringBuffer(); |
|
|
command.append("UPDATE "); |
command.append("DELETE FROM"); |
command.append(beanDest.getQC()); |
command.append(beanDest.getQC()); |
command.append(destTableName); |
command.append(destTableName); |
//command.append(convertText((String) names.get(tbIndex))); |
//command.append(convertText((String) names.get(tbIndex))); |
command.append(beanDest.getQC()); |
command.append(beanDest.getQC()); |
command.append(" SET "); |
|
|
|
int size = bean.getColumnNames().size(); |
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()) + " = ?"); |
command.append("WHERE " + convertText(ids.get(tbIndex).toString()) + " = ?"); |
PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString()); |
PreparedStatement pstm = beanDest.getConnection().prepareStatement(command.toString()); |
System.out.println(command + " " + tbIndex); |
System.out.println(command + " " + tbIndex); |
//int rowCount = bean.getRowCount(query); |
//int rowCount = bean.getRowCount(query); |
int idIndex = bean.getColumnNames().indexOf(ids.get(tbIndex)); |
// int idIndex = bean.getColumnNames().indexOf(ids.get(tbIndex)); |
while ((row = bean.getNextRow()) != null) |
while (true) |
{ |
{ |
|
|
j++; |
j++; |
|
if (j == linesToDelete.size()) |
|
break; |
//print rows |
//print rows |
Object obj = null; |
pstm.setString(1, linesToDelete.get(j).toString()); |
/* for(int k=0;k<row.size()-1;++k) |
System.out.println(pstm.toString()); |
{ |
|
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(); |
pstm.execute(); |
//stm.executeUpdate(command.toString()); |
|
if (dialog != null) |
if (dialog != null) |
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); |
|
command = null; |
command = null; |
} // to for loop |
|
|
|
} |
} |
|
// prepare new query for next chunk |
|
if (query.indexOf("where") > 0) |
|
tempQuery = query + " and " + tempID + ">'" + vec.lastElement() + "'"; |
|
else |
|
tempQuery = query + " where " + tempID + ">'" + vec.lastElement() + "'"; |
|
|
|
} //to outer while |
|
} // to idfield if |
|
} // table loop |
|
|
} catch (Exception e) |
} catch (Exception e) |
{ |
{ |
System.out.println("Error while connecting to database " + e); |
System.out.println("Error while connecting to database " + e); |