PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Méthode pr les transaction ou est l'erreu ?
Méthode pr les transaction ou est l'erreu ?
Débuté par ronando82, 06 jan. 2005 13:00 - 4 réponses
Posté le 06 janvier 2005 - 13:00
Vous allez me dire la méthode a adopter car je n'arrive pas à m'en sortir avec les transactions
Je dév en WD9 et hyper file classique

Voila comment je procède :
--------

erreur = faux

HTransactionDébut()

//Boucle
TANTQUE ....

AJOUT DS LA BASE
SI ERREUR
HTransactionAnnule()
erreur = Vrai
SORTIR
FIN

FIN TQ

HTransactionFin()

--------
Ce code me semble bon mais il doit y avoir une erreur car j'ai souvent des erreurs d'integrités et quand je fais expres de louper une requete, les insertions d'avant ne s'annulent pas.


Merci d'avance
Posté le 06 janvier 2005 - 13:11
En fait je viens de comprendre que c'est lorsque je dit d'annuler la transaction qu'il m'affiche la fenetre : "le mécanisme de sécurité assisté de l'application WDTST a ete declenché.
Les données rentrent en conflit avec les contraintes d'intégrité définies dans la base de données. vous pouvez annuler l'opération ou reprendre la main pour modifier les données."

C'est qu'il veut annuler les requetes précedantes mais qu'il peut pas a cause des contraintes. Il peut pas annuler tt court ??
Posté le 06 janvier 2005 - 17:21
erreur = faux

HTransactionDébut()

//Boucle
TANTQUE ....

AJOUT DS LA BASE
SI ERREUR
//HTransactionAnnule()
erreur = Vrai
SORTIR
FIN

FIN TQ
si erreur alors
HTransactionAnnule()
sinon
HTransactionFin()
fin
Posté le 06 janvier 2005 - 17:57
Lorsque l'appli veut annuler la transaction à la fin, j'ai une erreur d'intégrité alors que je veux juste annuler ce qui n'a pas fonctionné !!

Bref ca fonctionne pas mieux..
Posté le 10 janvier 2005 - 11:09
Les transactions sont pour tout valider ou ne rien valider.
Dans le cas d'erreur d'integrite d'ajout de lignes, il faut tester si la cle primaire de la ligne existe deja ou non par une lecture.
si inexistant alors ajout.