SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010
-
18 avril 2007 à 22:15
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010
-
19 avril 2007 à 07:44
bonsoir,
Difficile de tout expliquer en peu de mots, mais en gros :
J'effectue une transaction qui contient des opérations diverses. Dans certains cas, 2 de ces opérations (non contigües) s'effectuent sur le même enregistrement d'une table. Par exemple une soustraction sur une colonne, puis + tard une addition sur cette même colonne.
Une fois la transaction terminée, seule la dernière opération (l'addition)est effectuée. La première est "oubliée".
Si ces 2 opérations portent sur des enregistrements différents, pas de problème, les 2 sont effectuées.
Si je clos la transaction entre ces 2 opérations, tout se passe normalement, elles sont effectuées aussi toutes les 2.
Est-ce normal, y a-t-il un moyen de contourner cet obstacle, une ligne à écrire, un petit secret ?
SuperBouly
Messages postés410Date d'inscriptiondimanche 1 février 2004StatutMembreDernière intervention 8 mai 2010 19 avril 2007 à 07:44
bonjour,
En .Net : je n'ai pas l'impressioin que ce soit un Pb Sql .
Au début de mes opérations j'ai ma connexion "Cnn" et une transaction "Tr" et l'instruction
Tr=Cnn.BeginTransaction
Je fais toutes mes opérations , qui sont tres banales : il s'agit d'une modification de location de matériel (je resume)
1.j'annule l"ancien matériel loué (je recrédite le stock)
2.je modifie éventuellement les coordonnées du client dans une table
3 je modifie la fiche location
4 je déduit le stock
puis
Tr.commit
Cnn.close Comme je résume, ca parait idiot de mettre le stock à jour en 2 fois, mais c'est plus facile ainsi.
Si je ne modifie que la quantité du meme produit, il ne sa passe que la dernière opération
si je change de produit, tout va bien.
Le pire, c'est que j'ai l'impression que c'est normal, et qu'il y a qqch qui m'échappe dans le mécanisme.
Qu'en penses-tu?
Gilles