Bonjour tout le monde,
Je suis en train de développer un programme (étonnant non ?) et j'ai fait une procédure qui fait elle même appel à d'autres procédures pour faire des insert en "rafale" surr plusieurs tables.
Extrait :
Donc j'envoie aux procédures "filles" les paramètres dont elles ont besoins (connexion et transaction comprises) avec des try sur toutes les procédures impliquées.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Dim myTransac As SqlTransaction myTransac = cnx.BeginTransaction cmd.Transaction = myTransac Try cmd.ExecuteNonQuery() 'Si l'insertion du nouveau rapport est effectuée avec succès, on insère tout les lots LigneLot.insert(insertReussi, newRapport.ListeLot, newRapport.Id, cnx, myTransac) 'Si les lots sont insérés avec succès, on insère les pertes EntetePerte.insert(insertReussi, newRapport.ListePerte, newRapport.Id, cnx, myTransac) 'Si les pertes sont insérées avec succès, on commit la transaction, sinon on rollback myTransac.Commit() Catch insertReussi = False myTransac.Rollback() End Try cnx.Close()
Donc ma question est : Si une des ces procédures lève une exception, est ce que je vais bien revenir dans le try/catch d'origine ? Et donc est ce que le commit/rollback est utilisé à bon escient ici ?
Partager