IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

comment récupérer l'erreur sql?


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut comment récupérer l'erreur sql?
    bonjour,
    J'ai un petit soucis sur une procédure sous MySQL, je voudrait
    récupérer le message d'erreur si il y a un problème lors d'une
    exécution de requête. Actuellement j'arrive bien lancer ma
    procédure et sortir de ma procédure si j'ai un soucis mais pas
    à récupérer le code d'erreur

    exemple du code :
    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
    CREATE PROCEDURE SP_PRO
    (
    IN v_req,
    OUT i_ret
    )
    BEGIN
     
    	DECLARE EXIT HANDLER FOR SQLEXCEPTION,SQLWARNING,NOT FOUND 
    	BEGIN
    		set i_ret=-2;
    		ROLLBACK;
     
    	END; 
    START TRANSACTION;
    //traitement de la procédure 
    //execute une requete
    COMMIT;
    END;
    donc quand je fait le call de ma procédure j'ai pas d'erreur
    et si j'enleve le handler je recupere un message d'erreur
    j'ai vu qu'on pouvais afficher l'erreur sous le shell du mysql
    en faisant 'show errors'
    mais je voudrait maintenant pouvoir récupérer l'erreur dans
    ma procédure
    Il y a une table spécial ou est stocker l'erreur de la dernière requete
    ou je pourrai l'appeler dans ma procédure?

  2. #2
    Membre émérite Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Par défaut
    alors tu dois avoir un fichier mysql.err ou/et mysql.log ....nom par defaut .... dans un repertoire log surement.
    tu peux allez voir ou est stocké le fichier dans les option de log ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Par défaut
    Je préfère évite de passer par une lecture d'un fichier de log
    parce que le traitement est à faire dans la procéudre

    mysql> CALL SP_IUD_BLK('INSERT INTO DIR_USER SET NNI=\'123\'##INSERT INTO DIR_US
    ER SET NNI=\'123\'##',@iOk,@asReq,@asMsg);
    ERROR 1062 (23000): Duplicate entry '123' for key 'NNI'
    mysql> show errors;
    +-------+------+-------------------------------------+
    | Level | Code | Message |
    +-------+------+-------------------------------------+
    | Error | 1062 | Duplicate entry '123' for key 'NNI' |
    +-------+------+-------------------------------------+

    Ce que je voudrai c'est savoir si on peu récupérer dans la procédure
    la table qui est affichée par show errors

Discussions similaires

  1. [MySQL] comment recupérer l'erreur sql dans PHP
    Par hammag dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 29/04/2009, 17h50
  2. comment récupérer les erreur d'exécution cron
    Par Ohemeg dans le forum RedHat / CentOS / Fedora
    Réponses: 9
    Dernier message: 23/12/2008, 01h10
  3. Réponses: 6
    Dernier message: 15/02/2007, 13h46
  4. Récupérer une erreur SQL avec TIBDataSet
    Par cgone dans le forum Bases de données
    Réponses: 3
    Dernier message: 25/10/2006, 00h00
  5. [C#] Comment gérer les erreurs SQL ?
    Par dcollart dans le forum Accès aux données
    Réponses: 1
    Dernier message: 20/06/2006, 13h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo