Bonjour à tous,
Pour valider un process d'insertion, je suis obligé d'appeler plusieurs procédures stockées successivement.
Si à un moment donné, une procédure stockée retourne une erreur, je dois manuellement "rollback" tous les appels précédents. C'est plutôt fastidieux.
N'y aurait il pas un moyen d'avoir une transaction globale (gérée par ADO.NET) qui pourrait rollback tout d'un seul coup ?
Par donner un exemple de l'existant :
En gros, j'insère des données dans la table A. La SP INSERT_INTO_A s'en occupe et me retourne un UID_A d'enregistrement.
Si tout va bien j'utilise cet UID_A que je passe en paramètre de SP_INSERT_INTO_B qui me retourne un UID_B.
Si tout va bien j'utilise cet UID_B que je passe en paramètre de SP_INSERT_INTO_C qui me retourne un UID_C.
Etc.
Bref, si à un moment donné, une SP se foire (pour une raison ou une autre), je n'ai pas le choix, il faut que j'aille faire le ménage dans toutes les tables qui ont été précédemment impactées. Et c'est super pas cool.
Evidemment, je ne peux pas créer de nouvelle SP qui appellerait successivement mes autres SP (pas drôle hein), et je ne peux modifier aucune des SP existantes (pas drôle non plus).
Je cherche donc un moyen côté ADO.NET de gérer une "transaction" englobante qui pourrait me faciliter la vie.
Si quelqu'un a une piste à me conseiller, je suis preneur.
Merci d'avance pour votre aide.
Partager