Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
J'ai 2 windows : une pour la réservation d'articles, une autre pour la commande d'articles.
Je n'ai qu'un seul article par réservation.
Lorsque mon stock est suffisant, je drag un article de la fenêtre w_réservation vers la fenêtre w_commande. Une fois le drag effectué j'efface la réservation dans la fenêtre w_réservation.
Je vérfie si j'ai une autre réservation pour le même client. Si oui, je la sélectionne et je drag vers la même commande.
J'ai alors une commande avec 2 articles et la réservation correspondant est effacée de la fenêtre réservation.
Maintenant j'ai 2 possibilités.
1°) soit je ne sauve pas ma commande et je dois alors retrouver mais deux réservation intactes.
2°) soit je sauve ma commande et je fais un commit de tout. En principe, dans ce cas. J'ai une nouvelle commande et mes 2 réservations ont définitivement disparu.
Je n'arrive pas à concrétiser cette transaction.
Pouvez-vous m'aider?
Merci
Dernière modification par jcc (15-10-2008 14:35:08)
Hors ligne
lors des drag tu supprimes les réservations de tes DW réservation et tu les insères dans la DW commande, ensuite :
1°) soit je ne sauve pas ma commande et je dois alors retrouver mais deux réservation intactes.
tu ne fais aucun update sur les DW et les re-retrieve
2°) soit je sauve ma commande et je fais un commit de tout. En principe, dans ce cas. J'ai une nouvelle commande et mes 2 réservations ont définitivement disparu.
tu fais un update sur DW commande
si c'est ok tu fais un update sur toutes les DW reservation
si tout est encore OK tu commit le tout, sinon tu rollback le tout
Hors ligne
Bonjour,
Pour ma réponse, je suppose que tu as 2 datawindows (1 réservation, 1 commande) avec des tables différentes.
2°)
IF dw_commande.Update(TRUE, FALSE) < 0 THEN GOTO Error IF dw_reservation.Update(TRUE, FALSE) <0 THEN GOTO Error COMMIT USING SQLCA; dw_commande.ResetUpdate() dw_reservation.ResetUpdate() RETURN Error: ROLLBACK USING SQLCA;
Bien sur, ton objet transaction ne doît pas être AutoCommit.
Hors ligne
C'est OK
Merci
Hors ligne