Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/03/2006, 12h58   #1
Nouveau Membre du Club
 
Inscription : février 2004
Messages : 52
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 52
Points : 36
Points : 36
Par défaut [MySQL5] Procédure Stockée et RollBack

Quelqu'un pourrait-il m'aiguiller sur la manière d'effectuer un rollback dans une procédure stockée sous MySQL 5 pour n'importe qu'elle erreur.

Je souhaiterais de plus ressortir le numero et le texte de l'erreur de la procédure.

d'avance merci

Filouxera
filouxera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/03/2006, 14h56   #2
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Normalement tu peux faire un ROLLBACK mais MySQL ne permet pas de retourner un message d'erreur personnalisé. A la rigueur du peux passer un code d'erreur dans un paramètre de sortie.
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/03/2006, 09h39   #3
Nouveau Membre du Club
 
Inscription : février 2004
Messages : 52
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 52
Points : 36
Points : 36
J'avais envie de faire, pour récupérer le code d'erreur dans la variable Err_, un truc du Genre :

declare continue handler for sqlwarning set Err_= 'Erreur N° '||sqlstate.

Est-ce possible ?

Pour le message d'erreur, je cherche au moins a récupérer dans une variable le message d'erreur de MySQL ?.

filouxera
filouxera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/03/2006, 16h36   #4
Nouveau Membre du Club
 
Inscription : février 2004
Messages : 52
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 52
Points : 36
Points : 36
rien ne marche

declare continue handler for sqlwarning set Err_= 'Erreur N° '||sqlstate.
ou
declare continue handler for sqlwarning set @b= 'Erreur N° '||sqlstate.
ou
declare continue handler for sqlwarning set @b= 'Erreur N° '||@sqlstate.

Je cherche à faire un truc du genre :

Procedure nom(variables, OUT NoErr)
Begin
SET autocommit=0;
NoErr=0;
declare continue handler for sqlwarning set @b= 'Erreur N° '||sqlstate.

mes requettes...

IF (NoErr different 0) Then
RollBack;
ELSE
Commit;
END IF;
End


Quelqu'un aurait il une solution ?
filouxera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/03/2006, 19h12   #5
Provisoirement toléré
 
Avatar de Maximilian
 
Inscription : juin 2003
Messages : 2 622
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 2 622
Points : 2 505
Points : 2 505
Citation:
Envoyé par filouxera
rien ne marche
C'est à dire ? Pourrais-tu être un brin plus explicite ?
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h08.


 
 
 
 
Partenaires

Hébergement Web