[Résolu] Problème avec HModifie

Posté par 2501 le 23/5/2007 18:28:43
Bonsoir,

Je viens de perdre une après midi complète sur un comportement aléatoire de windev, je vous soumet le truc quand même :

J'ai une classe qui s'occupe de lire et écrire dans les bases de données, avec une méthode :select(_ID), une :commit(), et des accesseurs getXXX() et setXXX(_val).

Dans le Commit, je fais un truc du genre :


HlitrecherchePremier(Intervention,IDIntervention,:getIDIntervention())

intervention.libelle = :getLibelle()
intervention.date = :getDate()
intervention.heureDeb = :getHeureDeb()
...

*

Si htrouve(Intervention) = vrai alors
renvoyer HModifie(Intervention)
Sinon
renvoyer Hajoute(Intervention)
fin



Si je met un "info(intevention.date)" la ou se trouve l'* dans le code ci dessus, j'ai bien un retour de la date que je veux, cela signifi donc que la date à bien été affectée à l'enregistrement, pareil pour libelle et les autres rubriques.

Pourtant depuis ce matin j'ai le comportement suivant :

La date de fin n'est pas mise à jour dans la base après le Hmodifie, la date non plus, certains booléens non plus, le descriptif non plus, par contre les autres rubriques sont mises à jour...

Avec Hajoute c'est pareil, et dans tous les cas, le hmodifie et le hajoute ne retournent pas d'erreurs.

J'ai réparé, recompilé, viré le .cpl, retapé toutes les affectations sans faire de copier / coller, mais c'est toujorus pareil.

Le seul mieux que j'ai eut, c'est en faisant ceci :

après le code :

intervention.libelle = :getLibelle()
intervention.date = :getDate()
intervention.heureDeb = :getHeureDeb()
...


j'ai rajouté :

intervention.libelle = :getLibelle()


et la la mise à jour dans la base s'est faite correctement pour la rubrique "libelle".

Par contre quand j'ai "doublé" toutes les affectations, comme ceci :

intervention.libelle = :getLibelle()
intervention.date = :getDate()
intervention.heureDeb = :getHeureDeb()
...
intervention.libelle = :getLibelle()
intervention.date = :getDate()
intervention.heureDeb = :getHeureDeb()
...


Je retombe dans le problème initial....

Je sent que je vais maudir les dévs de chez PCsoft sur 25 générations.... à moins qu'on me démontre mon erreur, mais je doute (je développe tous mes accés aux données comme ça, comme, et j'en suis à plus de 150 classes de ce type)

En tout cas merci à ceux qui pourrons m'aider un peu...

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=18&topic_id=5157&post_id=21272