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 28/03/2006, 17h29   #1
Invité régulier
 
Inscription : mars 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 13
Points : 6
Points : 6
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 :
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....

*********************************************************
audreyc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 09h24   #2
Invité régulier
 
Inscription : mars 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 13
Points : 6
Points : 6
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
audreyc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 13h00   #3
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
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.
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 14h41   #4
Invité régulier
 
Inscription : mars 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 13
Points : 6
Points : 6
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...
audreyc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 14h51   #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
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.
__________________
Pensez au bouton
Maximilian est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h49.


 
 
 
 
Partenaires

Hébergement Web