Bonjour,
Voila, j'ai un gros soucis avec une boucle. Je m'explique: j'ai deux tableaux. Je souhaite comparer mon premier tableau (intitulé Comment_Echec) avec le deuxième (intitulé visu_AltirisTest) et, si il y a des differences dans le deuxieme tableau (voir des champs manquant) par rapport au premier tableau alors, je souhaite inserer ces données manquantes dans mon deuxieme tableau.
Voici mon bout de code:
var Comment_Echec=Comment_Echec();
var visu_AltirisTest=visu_AltirisTest();
for (i=0;i<Comment_Echec.length;i=i+4){
serveur : Comment_Echec[i],
name : Comment_Echec[i+1],
status_code : Comment_Echec[i+2],
mac_addr : Comment_Echec[i+3]
for(j=0;j<visu_AltirisTest.length;j=j+6){
serveur_=visu_AltirisTest[j+1];
name_=visu_AltirisTest[j+2];
status_code_=visu_AltirisTest[j+3];
mac_addr_=visu_AltirisTest[j+4];
if((serveur!=serveur_) && (name!=name_) && (status_code!=status_code_) && (mac_addr!=mac_addr_)){
insert_AltirisTest(serveur,name,status_code,mac_addr);
WScript.echo("insert_AltirisTest = "+insert_AltirisTest(serveur,name,status_code,mac_addr))
break;
} else {
WScript.Echo("on fait rien");
break;
}
}
}
Concernant mes fonctions, les voicis:
function Comment_Echec(){
start3=test;
req="select t1.serveur, t1.name, t1.status_code, t3.mac_addr " +
"from Altiris t1 " +
"inner join Altiris_Mac_AGFR t3 on t1.name=t3.computer " +
"where t1.status_code = 1 " +
"and t1.serveur <> 'PARS000621' " +
"and t1.start_time > '"+start3+"' " +
"and t1.id=(select top 1 id from Altiris t2 where t1.name=t2.name order by id desc) " +
"and t3.id=(select top 1 id from Altiris_Mac_AGFR t4 where t3.computer=t4.computer order by id desc) " +
"order by t1.status_code,t1.start_time " ;
rs=connExecute2(req);
arr=(rs.eof)?[] : new VBArray(rs.getRows()).toArray();
return arr;
};
function insert_AltirisTest(serveur,name,status_code,mac_addr){
req="insert into AltirisTest (serveur,name,status_code,mac_addr) " +
"values('"+serveur+"','"+name+"','"+status_code+"','"+mac_addr+"') ";
rs=connExecute2(req);
};
function visu_AltirisTest(){
req="select * from AltirisTest " ;
rs=connExecute2(req);
arr=(rs.eof)?[] : new VBArray(rs.getRows()).toArray();
return arr;
}
Mon problème actuel est que quand je n'ai pas dejà des champs dans mon deuxieme tableau, alors il ne m'insere rien.
Merci pour votre aide,
Seb.