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 :

Proc. Stock. : Gérer les erreurs


Sujet :

SQL Procédural MySQL

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Points : 13
    Points
    13
    Par défaut Proc. Stock. : Gérer les erreurs
    Bonjour,
    Je souhaiterai savoir s'il est possible de passer en paramètre dans une procédure1 le nom d'une procédure2 et d'exécuter cette dernière depuis la première.

    Un code parle mieux alors voilà ce que j'aimerai bien avoir
    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
    DELIMITER $$
     
    DROP PROCEDURE IF EXISTS proc_test_erreur` $$
    CREATE PROCEDURE proc_test_erreur(IN laProcedure varchar(255), OUT codeErreur varchar(10), OUT retour int )
    BEGIN
      declare erreur int default 0;
     
      DECLARE CONTINUE HANDLER FOR 1452 begin
         set erreur = 1 ;
         set  codeErreur = "1452";
       end;
     
       (1)    select (concat("call ", fonction));
     
        if erreur = 1  then
         SET retour = 1;
        end if;
     
    END $$
    DELIMITER ;

    voilà en fait je souhaite que à l'endoit ou il y a (1) il y est un appel à la fonction passée en paramètre.

    Est-ce possible....

    *********************************************************

  2. #2
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    je vois que les réponses n'afluent pas, peut-être parce que je n'explique pas pas assez la raison de mon problème.

    En fait le problème de base que j'ai c'est la gestion des remontées d'erreurs dans les procédures stockées.

    J'ai bien vu qu'on pouvait les gérer avec les handlers mais comment faire pour gérer distinctement les n erreurs possibles pour chaque procédure.

    J'avais dans l'idée de faire une procédure1 ou je définirais n handler pour n erreurs et de passer en paramètre à la procédure 1 le nom de la procédure 2 à exécuter.

    mais voilà une fois le nom de ma fonction2 récupérée comment faire pour l'exécuter...

    Y a t'il une autre solution pour gérer les erreurs?

    Merci d'avance pour vos réponses

  3. #3
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Salut,

    Tu pourrais faire ça avec du SQL dynamique et un prepared statement : http://www.developpez.net/forums/viewtopic.php?t=416004

    Mais bon, il ne faut pas se leurrer la gestion des exceptions sous MySQL vole au ras des pâquerettes.

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 13
    Points : 13
    Points
    13
    Par défaut
    Merci,

    Citation Envoyé par Maximilian

    Mais bon, il ne faut pas se leurrer la gestion des exceptions sous MySQL vole au ras des pâquerettes.
    C bien ce que j'ai crue comprendre.

    En fait je me demande quelles sont les erreurs qui peuvent survenir et que j'aurai à traiter. dans un environnement de prod. client serveur.

    Tous les appels à la base sont faits depuis le script PHP en faisant appel à des procédures stockées.
    Normaly tous les paramètres (types et nb sont validés avant le passage)
    Les vérification de connexion sont faits depuis le script php.

    J'ai pu recencer quelques erreurs utilent à traiter comme :
    les problème de disque full...

    Quelles sont les aurtres types d'erreurs "fatales" à traiter comme les problèmes d'accès disque ect...

  5. #5
    Membre émérite Avatar de Maximil ian
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 622
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 622
    Points : 2 973
    Points
    2 973
    Par défaut
    Vu que les SP sont vérifiées syntaxiquement et compilées à la création, ça fait ça en moins à gérer.

    Ensuite le SGBD est censé être un environnement relativement stable et sûr, donc on gère rarement les exceptions que tu cites à l'intérieur de SP.
    Ce n'est pas comme un programme classique où on risque à tout moment d'avoir des soucis d'écriture dans des fichiers, des perturbations réseau, des coupures d'accès à tel ou tel serveur, etc.

    Et puis de toute façon en cas de problème grave il y a toutes les chances pour que tu n'arrives même pas à te connecter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant]Comment gérer les erreurs simplement ?
    Par nahouto dans le forum Langage
    Réponses: 3
    Dernier message: 29/11/2006, 21h55
  2. [Sécurité] [PEAR::Auth] Gérer les erreurs de connexion
    Par lamimolette75 dans le forum Langage
    Réponses: 1
    Dernier message: 18/09/2006, 18h47
  3. gérer les erreurs intebase avec delphi
    Par mondanikoffi dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/12/2004, 15h46

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