1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
procedure TcdrInventaire.deplacerLieu(id, idParent: Integer);
var lie,lieTemp,lieParent: lieu;
begin
lie := getLieu(id);
lieParent := getLieu(idParent);
// Ajouter l'espace nécessaire
req := 'UPDATE lieux SET liefin=liefin+'+IntToStr((lie.fin+1)-lie.deb)+' WHERE liefin>='+IntToStr(lieParent.fin);
EffectuerRequeteDivers(req);
req := 'UPDATE lieux SET liedeb=liedeb+'+IntToStr((lie.fin+1)-lie.deb)+' WHERE liedeb>='+IntToStr(lieParent.fin);
EffectuerRequeteDivers(req);
// Déplacer les bornes
lieTemp := getLieu(id);
req := 'UPDATE lieux SET liedeb=liedeb-('+IntToStr((lie.fin+1)-lieParent.fin)+'),liefin=liefin-('+IntToStr((lie.fin+1)-lieParent.fin)+'), '
+'lieniv='+IntToStr(lieParent.niv+1)+' WHERE liedeb>='+IntToStr(lieTemp.deb)+' AND liefin<='+IntToStr(lieTemp.fin);
EffectuerRequeteDivers(req);
// Supprimer l'espace vide
req := 'UPDATE lieux SET liefin=liefin-'+IntToStr((lie.fin+1)-lie.deb)+' WHERE liefin>='+IntToStr(lie.deb+((lie.fin+1)-lie.deb));
EffectuerRequeteDivers(req);
req := 'UPDATE lieux SET liedeb=liedeb-'+IntToStr((lie.fin+1)-lie.deb)+' WHERE liedeb>='+IntToStr(lie.deb+((lie.fin+1)-lie.deb));
EffectuerRequeteDivers(req);
end; |
Partager