La transaction ne s'effectue qu'à demi

SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Dernière intervention 8 mai 2010 - 18 avril 2007 à 22:15
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Derniè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 ?

merci de vos lumières
Gilles

2 réponses

jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
18 avril 2007 à 23:13
Bonsoir,

Commet effectue la transaction ? en .net ? ou en pure T-SQL ?

je pense que t'auras plus de chance de réponses sur www.sqlfr.com qu'ici.

<hr />Cyril - MSP - MCTS ASP.net & SQL
0
SuperBouly Messages postés 410 Date d'inscription dimanche 1 février 2004 Statut Membre Derniè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
0
Rejoignez-nous