1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
public void updateLigne(String Entrepot) throws Exception{
Base b=null;
Base c=null;
// La classe Base a été défini
try{
Set<String> s=new TreeSet<String>();
Iterator<Base> it=m.values().iterator();
// m est un map<Table,Base> associant à chaque table la base à laquelle elle appartient.
//La classe Table a aussi été définie.
c=client.getBase(Entrepot);
while(it.hasNext()){
String g=it.next().getNom();
if(g.equals(Entrepot)==false)
//je récupère le nom de toutes les Bases sauf celle à mettre à jour.
{s.add(g);
}
}
Iterator<String> iter=s.iterator();
while(iter.hasNext()){
String f=iter.next();
b=client.getBase(f);
Iterator<Table> i=b.iterator();
//parcours des tables de chacune de ces bases.
while(i.hasNext()){
Table t=i.next();
Table t1=client.getTable(Entrepot,t.getNom());
String recup="SELECT * FROM "+t.getNom();
Statement stmt=b.getConnexion().createStatement();
ResultSet r=stmt.executeQuery(recup);
Statement stmt2=c.getConnexion().createStatement();
ResultSet r2=stmt2.executeQuery(recup);
ResultSetMetaData rm=r.getMetaData();
ResultSetMetaData rm2=r2.getMetaData();
while((r.next())&&(r2.next())){
for(int a=1;a<=rm.getColumnCount();a++){
if(r.getString(a).equals(r2.getString(a))==false){
// s'il ya une différence entre les 2 tables ,celle de la base entrepot est modifiée.
r2.updateString(a,r.getString(a));
}
}
}
}
}
}
catch(Exception e) {
System.err.println("\n*** Exception caught in updateLigne()");
throw e;
}
} |