Partie III
Langages et outils
326
© Éditions Eyrolles
8.3 Appel d’un sous-programme
Compiler, dans votre base, la procédure cataloguée supprimeSalle(IN ns VARCHAR(7),OUT
res TINYINT) qui supprime une salle dont le numéro est passé en premier paramètre.
CREATE PROCEDURE supprimeSalle(IN ns VARCHAR(7),OUT res TINYINT)
BEGIN
DECLARE ligne VARCHAR(20);
DECLARE EXIT HANDLER FOR NOT FOUND
SET res := -1;
DECLARE EXIT HANDLER FOR SQLEXCEPTION SET res := -2;
SELECT nomSalle INTO ligne FROM Salle WHERE nSalle = ns;
DELETE FROM Salle WHERE nsalle = ns;
SET res := 0;
COMMIT ;
END;
La procédure retourne en second paramètre :
• 0 si la suppression s’est déroulée correctement ;
• -1 si le code de la salle est inconnu ;
• -2 si la suppression est impossible (contraintes référentielles).
Écrire la méthode Java int deleteSalleSP(String) qui appelle le sous-programme supprimeSalle. Essayer les différents cas d’erreurs en appelant cette méthode d’abord avec un numéro de
salle référencé par un poste de travail, et ensuite avec un numéro de salle inexistant. Penser à donner
à l’utilisateur le privilège en exécution sur cette procédure.
Langages et outils
326
© Éditions Eyrolles
8.3 Appel d’un sous-programme
Compiler, dans votre base, la procédure cataloguée supprimeSalle(IN ns VARCHAR(7),OUT
res TINYINT) qui supprime une salle dont le numéro est passé en premier paramètre.
CREATE PROCEDURE supprimeSalle(IN ns VARCHAR(7),OUT res TINYINT)
BEGIN
DECLARE ligne VARCHAR(20);
DECLARE EXIT HANDLER FOR NOT FOUND
SET res := -1;
DECLARE EXIT HANDLER FOR SQLEXCEPTION SET res := -2;
SELECT nomSalle INTO ligne FROM Salle WHERE nSalle = ns;
DELETE FROM Salle WHERE nsalle = ns;
SET res := 0;
COMMIT ;
END;
La procédure retourne en second paramètre :
• 0 si la suppression s’est déroulée correctement ;
• -1 si le code de la salle est inconnu ;
• -2 si la suppression est impossible (contraintes référentielles).
Écrire la méthode Java int deleteSalleSP(String) qui appelle le sous-programme supprimeSalle. Essayer les différents cas d’erreurs en appelant cette méthode d’abord avec un numéro de
salle référencé par un poste de travail, et ensuite avec un numéro de salle inexistant. Penser à donner
à l’utilisateur le privilège en exécution sur cette procédure.
