|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Débuté par no, 13 jan. 2005 23:52 - 5 réponses |
| |
| | | |
|
| |
| Posté le 13 janvier 2005 - 23:52 |
Bonjour,
J'aimerais savoir s'il est possible d'obtenir plus d'informations avec les triggers. J'utilise une DB Hyperfile et WD 8. la version 9 devrait arriver d'ici quelques semaines.
Ce que je veux faire: Installer un trigger MODIFICATION et je pourrais savoir l'état du fichier AVANT la modification et APRES la modification. Actuellement je procède comme suit:
Méthode du trigger : SELON Majuscule(H.Action) CAS "A" SELON Majuscule(H.FonctionTrigger) CAS "HAJOUTE" CAS "HMODIFIE" Info(matable.lbodom)
CAS "P" // Selon la fonction appelante SELON Majuscule(H.FonctionTrigger) CAS "HAJOUTE" CAS "HMODIFIE" Info ("apres:" + matable.lbodom) CAS "HSUPPRIME"
FIN
La valeur est toujours la meme meme si jai fait une modification. Mon but est de connaitre dans la méthode du trigger la valeur AVANT la modif et APRES la modif.
Comment faire ?
Merci à tous pour votre aide,
Sébastien |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 janvier 2005 - 09:51 |
Sébastien a écrit :
Bonjour,
J'aimerais savoir s'il est possible d'obtenir plus d'informations avec les triggers. J'utilise une DB Hyperfile et WD 8. la version 9 devrait arriver d'ici quelques semaines.
Ce que je veux faire: Installer un trigger MODIFICATION et je pourrais savoir l'état du fichier AVANT la modification et APRES la modification. Actuellement je procède comme suit:
Méthode du trigger : SELON Majuscule(H.Action) CAS "A" SELON Majuscule(H.FonctionTrigger) CAS "HAJOUTE" CAS "HMODIFIE" Info(matable.lbodom)
CAS "P" // Selon la fonction appelante SELON Majuscule(H.FonctionTrigger) CAS "HAJOUTE" CAS "HMODIFIE" Info ("apres:" + matable.lbodom) CAS "HSUPPRIME"
FIN
La valeur est toujours la meme meme si jai fait une modification. Mon but est de connaitre dans la méthode du trigger la valeur AVANT la modif et APRES la modif.
Comment faire ?
Merci à tous pour votre aide,
Sébastien
Bonjour
Voici une solution à votre problème : http://www.wdforge.org/modules/icontent/index.php…
Bien cordialement R&B de www.WDForge.org |
| |
| |
| | | |
|
| | |
| |
| Posté le 14 janvier 2005 - 19:23 |
Merci pour ta réponse !
Cependant, est-ce que cela peut marcher si je modifie la clée unique/composée d'un enregistrement ?
Bonne journée,
Sébastien |
| |
| |
| | | |
|
| | |
| |
| Posté le 17 janvier 2005 - 13:16 |
Sébastien a écrit :
Merci pour ta réponse !
Cependant, est-ce que cela peut marcher si je modifie la clée unique/composée d'un enregistrement ?
Bonne journée,
Sébastien
Effectivement, mais il faut dans ce cas surveiller les différentes composantes. Les clés composées sont des champs calculés par le moteur HyperFile.
++ R&B |
| |
| |
| | | |
|
| | |
| |
| Posté le 17 janvier 2005 - 17:29 |
Bonjour Romuald,
Je suis encore débutant en WinDev et je ne comprend pas trop comment résoudre le problème. Pourrais-tu expliquer davantage s'il-te-plaît ?
Table A : possède une clée composée de deux valeurs Table B : possède une clée unique (un ID) ainsi que les valeurs des deux clées composées pointant vers la Table A
Quand je modifie la Table A, je voudrais mettre à jour la Table B avec les nouvelles valeurs des deux rubriques composant la clée composée...
Je crois que ca me prendrait une valeur qui ne changera jamais dans la table A (donc je pourrais m'en servir comme clée), mais il y en a pas car la clée composée peut changer de valeur donc je ne peux pas m'y fier pour brancher ma source de données dans le trigger AVANT et récupérer les vraies valeurs comme je fais. Cela marche bien si je modifie une valeur non clée, mais si je modifie la clée, alors là ca ne marche plus ..
J'ai également essayé d'utiliser HNumEnr et HExécuteRequeteSQL mais ce n'est bon que pour les bases HF et ca n'a pas donné de résultats stables
Exemple: Table A : clée 1 : de 1 à 2 clée 2 : de 2000/10/10 à 2004/10/10 Table B : Update set clée 1 = 2, clée2 = 2004/10/10 where clée1 = 1 et clée2 = 2000/10/10
Merci pour vos réponses ! 
Sébastien |
| |
| |
| | | |
|
| | |
| |
| Posté le 17 janvier 2005 - 19:46 |
Bonjour,
Le problème est qu'un trigger avant s'excéute certe avant la modification effective du fichier mais bien après la commande écranversfichier donc tout appel à une variable de type fichier.qqchose donne la valeur future. Tu devrais donc faire un stockage temporaire de tes champs, faire un hlit, faire tes traitements et ensuite réassigner les bonnes valeurs que tu as stockés temporairement et enfin le hmodifie... Une autre combine consiste à faire la lecture par une source de donnée de l'enregistrement.
Voilà...
B. Neve
"Sébastien" <no@spam.com> a écrit dans le message de news: 41e6e341@news.pcsoft.fr...
Bonjour,
J'aimerais savoir s'il est possible d'obtenir plus d'informations avec les triggers. J'utilise une DB Hyperfile et WD 8. la version 9 devrait arriver d'ici quelques semaines.
Ce que je veux faire: Installer un trigger MODIFICATION et je pourrais savoir l'état du fichier AVANT la modification et APRES la modification. Actuellement je procède comme suit:
Méthode du trigger : SELON Majuscule(H.Action) CAS "A" SELON Majuscule(H.FonctionTrigger) CAS "HAJOUTE" CAS "HMODIFIE" Info(matable.lbodom)
CAS "P" // Selon la fonction appelante SELON Majuscule(H.FonctionTrigger) CAS "HAJOUTE" CAS "HMODIFIE" Info ("apres:" + matable.lbodom)
CAS "HSUPPRIME"
FIN
La valeur est toujours la meme meme si jai fait une modification. Mon but est de connaitre dans la méthode du trigger la valeur AVANT la modif et APRES la modif.
Comment faire ?
Merci à tous pour votre aide,
Sébastien
|
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|