Bonjour,
J'utilise un Dataset Typé dont l'une des datatables est représentée par une requête composée de deux tables dans la base de données. Mon problème est que ma procedure stocké pour l'ajout, effectue 2 instructions INSERT (une pour chaque table). Mon problème est que je ne suis pas capable de récupérer une erreur qui survient dans la procédure stocké de façon convenable.
Présentement j'ai
Cette instruction ajoute dans la table 1, mais pas dans la table 2. Du coté du SQLDataAdapter, il n'y a pas d'erreur donc la transaction réussit (COMMIT)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 INSERT INTO TABLE1 --Succès INSERT INTO TABLE2 -- Erreur IF @@ERROR > 0 RAISERROR('Erreur', 16, 1)
J'ai essayé l'alternative suivante
Le problème ici est qu'étant donné que le SQLDataadapter demarre déjà une transaction, je me retrouve donc avec des transactions imbriquées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11BEGIN TRAN INSERT INTO TABLE1 --Succès INSERT INTO TABLE2 -- Erreur IF @@ERROR > 0 ROLLBACK TRAN ELSE COMMIT TRAN
Je ne veux pas toucher au mécanisme automatique des datasets mis à part le système d'évènement (ex. : RowUpdated)
Une solution du coté SQL server serait plus que bienvenue
Merci
DoOmX
Partager