Pourquoi lorsqu’on rajoute un try catch en sql on obtient un « 0 row(s) affected » qui peut poser souci en java pour catcher l’erreur.
Avec myBatis, lorsqu’on travaille avec stored procedure avec try catch et que le premier résultat n’est pas une erreur (0 row(s) affected). MyBatis n’arrive pas à attraper l’erreur, dans mon cas il suffit d’ajouter « set nocount on » pour éviter ce problème. Mais je me pose quand même la question d’où vient ce «0 row(s) affected » ?
Voici un exemple :
result
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT 1/0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Msg 8134, Level 16, State 1, Line 1 Divide by zero error encountered.
Result avec l'ajout d'une ligne supplémentaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 --SET NOCOUNT ON BEGIN TRY SELECT 1/0 END TRY BEGIN CATCH RAISERROR('teqt',16,1) END CATCH
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 (0 row(s) affected) Msg 50000, Level 16, State 1, Line 7 teqt
Merci d’avance
Partager