|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Nouveau Membre du Club
![]() Inscription : février 2004 Messages : 52 ![]() |
Bonjour,
Je souhaiterais effectuer une gestion avancée des erreurs dans mes procédures stockées et récupérer au moins mon numéro d'erreur en dynamique . J'ai essayé le code ci-dessous, mais il ne me renvoi rien (numerr=vide) en code d'erreur. Code :
d'avance merci. Filouxera |
||
|
|
00
|
|
|
#2 |
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Salut,
Il n'y a pas de variable @SQLEXCEPTION ou @SQLWARNING. Donc, tu ne risques pas d'obtenir une valeur. En plus, il n'y a apparemment aucun moyen de récupérer le code d'erreur par une variable de session ou une fonction du style LAST_ERROR(). Cela fait un an que cette fonctionnalité est demandée (http://bugs.mysql.com/bug.php?id=11660) et toujours pas de neuf, même pas pour MySQL 5.1 Pour palier ça, tu peux déclarer un handler par SQLSTATE, qui met à un jour une variable => bon amusement. Ou alors, j'ai lu qu'il serait possible de créer "facilement" une UDF qui retournerait le dernier code d'erreur. |
|
|
00
|
|
|
#3 | |
|
Nouveau Membre du Club
![]() Inscription : février 2004 Messages : 52 ![]() |
J'avai déjà essayé par récupération du SQLSTATE dans une variable et le résultat était le même.
Tu as dis : Citation:
|
|
|
|
00
|
|
|
#4 | ||
![]() Inscription : juillet 2002 Messages : 537 ![]() |
Citation:
Je pensais à quelque chose du style, pour chaque SQLSTATE possible (ou du moins ceux qui peuvent avoir lieu dans ta procédure) : Code :
DECLARE CONTINUE HANDLER FOR SQLSTATE '23000' SET @SQLSTATE = 23000; Citation:
Ceci dit, les développeurs de MySQL auraient pu faire un effort. C'est vraiment une fonctionnalité de base, et qui est déjà implémentée pour SHOW ERRORS et SHOW WARNINGS... Bonne chance et tiens-nous au courant si tu continues l'aventure
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com