© Éditions Eyrolles
285
chapitre n° 7
Programmation avancée
Ne pas encore tenir compte des éventuelles exceptions et tracer chaque insertion dans la table
test.Trace. Utiliser les paramètres ci-dessous pour tester votre procédure. L’état de sortie doit être
le suivant. Vérifier aussi la présence des deux nouveaux enregistrements dans la table Installer.
Ne programmer le COMMIT qu’une fois la procédure bien testée.
CALL installLogSeg('130.120.80', 'log99', 'Blaster', '2005-09-05',
'9.9', 'PCWS', 999.9)$
+---------------------------------------+
| message
|
+---------------------------------------+
| Blaster stocké dans la table Logiciel |
| Installation sur Poste 4 dans Salle 2 |
| Installation sur Poste 5 dans Salle 2 |
+---------------------------------------+
7.3 Exceptions
Modifier la procédure installLogSeg afin de prendre en compte quelques-unes des exceptions
potentielles :
• numéro de segment inconnu (erreur NOT FOUND) ;
• numéro de logiciel déjà présent (ERROR 1062 Duplicate entry) ;
• type du logiciel inconnu (ERROR 1452 Cannot add or update a child row) ;
• date d’achat postérieure à celle du jour (se servir du même calcul que pour la colonne delai de
l’exercice précédent) ;
• aucune installation réalisée, car pas de poste de travail de ce type (erreur utilisateur pas_
install_possible).
Vérifier chacun de ces cas avec le jeu de tests suivant :
--test segment
CALL installLogSeg('
', 'log99','Blaster', '2005-09-05', '9.9',
'PCWS', 999.9)$
--test logiciel déjà présent
CALL installLogSeg('130.120.80', '
','Blaster', '2005-09-05',
'9.9', 'PCWS', 999.9)$
--test type du logiciel
CALL installLogSeg('130.120.80', 'log98','Mozilla', '2005-11-04', '1',
'
', 100.0)$
--date d’achat plus grande que celle du jour ?
CALL installLogSeg('130.120.80', 'log98','Mozilla',
, '1',
'PCWS', 100.0)$
--aucune install
CALL installLogSeg(
, 'log55','Eudora', '2005-12-06', '5',
, 540)$
--bonne installation
CALL installLogSeg('130.120.80', 'log77','Blog Up', '2005-12-05',
'1.3', 'PCWS', 90)$
toto
log1
toto
'2010-11-04'
'130.120.81'
'PCWS'
Précédent

- 307/418

Suivant