Pas de problème (pb), que du PowerBuilder (PB) ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 15-10-2008 09:21:16

jcc  
Membre completement Geek
Lieu: Mouscron
Date d'inscription: 08-01-2008
Messages: 142
Pépites: 13,733
Banque: 409,387,083,524

[RESOLU] Comment gérer cette transaction?

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

 

#2 15-10-2008 09:42:16

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Comment gérer cette transaction?

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


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#3 15-10-2008 09:44:01

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 747
Pépites: 1,028,843
Banque: 171,170,849,654

Re: [RESOLU] Comment gérer cette transaction?

Bonjour,

Pour ma réponse, je suppose que tu as 2 datawindows (1 réservation, 1 commande) avec des tables différentes.

2°)

Code: pb

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

 

#4 15-10-2008 14:34:43

jcc  
Membre completement Geek
Lieu: Mouscron
Date d'inscription: 08-01-2008
Messages: 142
Pépites: 13,733
Banque: 409,387,083,524

Re: [RESOLU] Comment gérer cette transaction?

C'est OK

Merci

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22