PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → [WD9] Halias et suppression en cascade
[WD9] Halias et suppression en cascade
Débuté par h.taniou, 14 jan. 2005 16:57 - 3 réponses
Posté le 14 janvier 2005 - 16:57
Bonjour,
mon analyse possède un fichier Commande et un fichier LigneCommande.
Ces 2 fichiers sont reliés dans l'analyse par une liaison (sur un
identifiant unique) de telle manière que si l'on supprime une commande,
les lignes de commande correspondantes soient supprimées (principe de
suppression en cascade).
Jusque là, tout va bien :)

J'ai ensuite créé un alias pour chaque fichier, respectivement
CommandeTemp et LigneCommandeTemp (comme dans l'exemple de l'aide). Le
problème est que lorsque je supprime un enregistrement de CommandeTemp,
les enregistrements correspondants de LigneCommandeTemp sont supprimés
(normal) mais les enregistrements de LigneCommande sont supprimés aussi
(là il y a problème).

Ma question est donc la suivante :
Comment supprimer la contrainte d'intégrité entre le fichier alias
(CommandeTemp) et le fichier de l'analyse LigneCommande ?
Posté le 17 janvier 2005 - 10:52
J'ai un probleme similaire, la contrainte ne peut pas etre changée sur
les alias. Vous ne pouvez meme pas la redéfinir ni meme l'annuler avec
hgereintegrite().

C'est un pb connu depuis des lustres mais ce n'est toujours pas changé
sous WD9.

LA solution est de passer par un changement de nom physique de fichier
plutot que faire un alias. Comme ca vous travaillerai sur les fichiers
aliassés mais en restant sur les fichiers décrits dans l'analyse.

Perso, j'ai retiré les contraintes entre les lignes et les entete des
pieces et je supprime a la main ( un simple DELETE from Lignes where
NumPiece = xxx suffit maintenant ^^ )

Hervé wrote:

Bonjour,
mon analyse possède un fichier Commande et un fichier LigneCommande.
Ces 2 fichiers sont reliés dans l'analyse par une liaison (sur un
identifiant unique) de telle manière que si l'on supprime une commande,
les lignes de commande correspondantes soient supprimées (principe de
suppression en cascade).
Jusque là, tout va bien :)

J'ai ensuite créé un alias pour chaque fichier, respectivement
CommandeTemp et LigneCommandeTemp (comme dans l'exemple de l'aide). Le
problème est que lorsque je supprime un enregistrement de CommandeTemp,
les enregistrements correspondants de LigneCommandeTemp sont supprimés
(normal) mais les enregistrements de LigneCommande sont supprimés aussi
(là il y a problème).

Ma question est donc la suivante :
Comment supprimer la contrainte d'intégrité entre le fichier alias
(CommandeTemp) et le fichier de l'analyse LigneCommande ?
Posté le 17 janvier 2005 - 11:39
Oui, je n'avais pas vu ton message lorsque j'ai posté le mien :)
En effet, il s'agit du même problème que j'ai aussi résolu en supprimant
la contrainte de suppression en cascade et en supprimant les
enregistrements par code.
Je trouve ça tout de même un peu dommage de ne plus pouvoir bénéficier
des contraintes d'intégrité de WinDev une fois que l'on utilise des alias.


BOUDOT Sébastien - Blue River System a écrit :
J'ai un probleme similaire, la contrainte ne peut pas etre changée sur
les alias. Vous ne pouvez meme pas la redéfinir ni meme l'annuler avec
hgereintegrite().

C'est un pb connu depuis des lustres mais ce n'est toujours pas changé
sous WD9.

LA solution est de passer par un changement de nom physique de fichier
plutot que faire un alias. Comme ca vous travaillerai sur les fichiers
aliassés mais en restant sur les fichiers décrits dans l'analyse.

Perso, j'ai retiré les contraintes entre les lignes et les entete des
pieces et je supprime a la main ( un simple DELETE from Lignes where
NumPiece = xxx suffit maintenant ^^ )

Hervé wrote:


Bonjour,
mon analyse possède un fichier Commande et un fichier LigneCommande.
Ces 2 fichiers sont reliés dans l'analyse par une liaison (sur un
identifiant unique) de telle manière que si l'on supprime une commande,
les lignes de commande correspondantes soient supprimées (principe de
suppression en cascade).
Jusque là, tout va bien :)

J'ai ensuite créé un alias pour chaque fichier, respectivement
CommandeTemp et LigneCommandeTemp (comme dans l'exemple de l'aide). Le
problème est que lorsque je supprime un enregistrement de CommandeTemp,
les enregistrements correspondants de LigneCommandeTemp sont supprimés
(normal) mais les enregistrements de LigneCommande sont supprimés aussi
(là il y a problème).

Ma question est donc la suivante :
Comment supprimer la contrainte d'intégrité entre le fichier alias
(CommandeTemp) et le fichier de l'analyse LigneCommande ?
Posté le 17 janvier 2005 - 13:25
Hervé a écrit :

Oui, je n'avais pas vu ton message lorsque j'ai posté le mien :)
En effet, il s'agit du même problème que j'ai aussi résolu en supprimant
la contrainte de suppression en cascade et en supprimant les
enregistrements par code.
Je trouve ça tout de même un peu dommage de ne plus pouvoir bénéficier
des contraintes d'intégrité de WinDev une fois que l'on utilise des alias.


.... Complément :
Pour les alias des fichiers entête/lignes nous procédons comme suit :
http://www.wdforge.org/modules/icontent/index.php…

+ l'astuce : alias du fichier des lignes ET du fichier d'entête avec
copie de l'enregistrement d'entête. Cette copie ne sert précisément que
pour pallier aux problèmes d'intégrité. A partir de là le moteur
HyperFile ne peut faire la distinction et la contrainte d'intégrité
passe, sans modification de l'analyse. D'où l'intérêt d'une ressource
anodine...

++ R&B