Partie II
Programmation procédurale
210
© Éditions Eyrolles
Avantages
Les principaux avantages d’utiliser des sous-programmes (procédures ou fonctions cataloguées qui sont stockées côté serveur) sont :
q
La modularité : un sous-programme peut être composé d’autres blocs d’instructions. Un
sous-programme peut aussi être réutilisable, car il peut être appelé par un autre.
q
La portabilité : un sous-programme est indépendant du système d’exploitation qui héberge
le serveur MySQL. En changeant de système, les applicatifs n’ont pas à être modifiés.
q
L’intégration avec les données des tables : on retrouvera avec ce langage procédural tous
les types de données et d’instructions disponibles sous MySQL, des mécanismes pour
parcourir des résultats de requêtes (curseurs), pour traiter des erreurs ( handlers ) et pour
programmer des transactions ( COMMIT , ROLLBACK , SAVEPOINT ).
q
La sécurité, car les sous-programmes s’exécutent dans un environnement a priori sécurisé
(SGBD) où il est plus facile de garder la maîtrise sur les ordres SQL exécutés et donc sur
les agissements des utilisateurs.
Structure d’un bloc
Un bloc d’instructions est composé de :
q
BEGIN (section obligatoire) contient le code incluant ou non des directives SQL se terminant par le symbole « ; » ;
q
DECLARE (directive optionnelle) déclare une variable, un curseur, une exception, etc. ;
q
END ferme le bloc.
Un bloc peut être imbriqué dans un autre bloc. Pour tester un bloc, nous verrons dans la
section Tests des exemples , qu’il faut l’inclure dans une procédure cataloguée. MySQL ne
prend pas encore en charge les procédures anonymes (sans nom).
Figure 6-1 Trafic sur le réseau d’instructions SQL
CALL Bloc
SGBD
Exécution globale
SELECT …;
UPDATE ….;
INSERT INTO …;
….
SGBD
Exécution requête
par requête
Client
Bloc
Suite
d’instructions
Serveur
BEGIN
SELECT …;
UPDATE ….;
INSERT INTO…;
….
END;
Programmation procédurale
210
© Éditions Eyrolles
Avantages
Les principaux avantages d’utiliser des sous-programmes (procédures ou fonctions cataloguées qui sont stockées côté serveur) sont :
q
La modularité : un sous-programme peut être composé d’autres blocs d’instructions. Un
sous-programme peut aussi être réutilisable, car il peut être appelé par un autre.
q
La portabilité : un sous-programme est indépendant du système d’exploitation qui héberge
le serveur MySQL. En changeant de système, les applicatifs n’ont pas à être modifiés.
q
L’intégration avec les données des tables : on retrouvera avec ce langage procédural tous
les types de données et d’instructions disponibles sous MySQL, des mécanismes pour
parcourir des résultats de requêtes (curseurs), pour traiter des erreurs ( handlers ) et pour
programmer des transactions ( COMMIT , ROLLBACK , SAVEPOINT ).
q
La sécurité, car les sous-programmes s’exécutent dans un environnement a priori sécurisé
(SGBD) où il est plus facile de garder la maîtrise sur les ordres SQL exécutés et donc sur
les agissements des utilisateurs.
Structure d’un bloc
Un bloc d’instructions est composé de :
q
BEGIN (section obligatoire) contient le code incluant ou non des directives SQL se terminant par le symbole « ; » ;
q
DECLARE (directive optionnelle) déclare une variable, un curseur, une exception, etc. ;
q
END ferme le bloc.
Un bloc peut être imbriqué dans un autre bloc. Pour tester un bloc, nous verrons dans la
section Tests des exemples , qu’il faut l’inclure dans une procédure cataloguée. MySQL ne
prend pas encore en charge les procédures anonymes (sans nom).
Figure 6-1 Trafic sur le réseau d’instructions SQL
CALL Bloc
SGBD
Exécution globale
SELECT …;
UPDATE ….;
INSERT INTO …;
….
SGBD
Exécution requête
par requête
Client
Bloc
Suite
d’instructions
Serveur
BEGIN
SELECT …;
UPDATE ….;
INSERT INTO…;
….
END;
