© Éditions Eyrolles
245
chapitre n° 7
Programmation avancée
Il n’existe pour l’instant qu’une seule manière de parcourir un curseur : du premier au dernier
enregistrement.
Instructions
Les instructions disponibles pour travailler avec des curseurs sont définies dans le tableau
suivant :
Figure 7-3 Principes d’un curseur
CREATE PROCEDURE
nomSousProgramme
[(... ) ]
BEGIN
DECLARE v2...;
DECLARE v3... ;
DECLARE CURSOR curs1 FOR SELECT brevet,nbhVol,
comp
FROM Pilote WHERE comp = ‘AF’ ;
...
...
OPEN curs1 ;
F ETCH curs1 INTO v1,v2,v3 ;
...
E ND ;
$
curs1
PL -1
2450
AF
PL -2
900
AF
PL -5
200
AF
v1
v2
v3
PL -1
2450
AF
Curseur
DECLARE v1...;
Tableau 7-5 Instructions pour les curseurs
Instructions
Commentaires et exemples
CURSOR FOR requête;
Déclaration du curseur.
DECLARE curs1 CURSOR FOR
SELECT brevet,nbHVol,comp
FROM bdsoutou.Pilote WHERE comp = 'AF';
OPEN nomCurseur;
Ouverture du curseur (chargement des lignes). Aucune exception n’est
levée si la requête ne ramène aucune ligne.
OPEN curs1;
FETCH nomCurseur INTO
listeVariables;
Positionnement sur la ligne suivante et chargement de l’enregistrement
courant dans une ou plusieurs variables.
FETCH curs1 INTO var1,var2,var3;
CLOSE nomCurseur;
Ferme le curseur. L’exception « ERROR 1326 (24000): Cursor is
not open » se déclenche si des accès au curseur sont opérés après
sa fermeture.
CLOSE curs1;
245
chapitre n° 7
Programmation avancée
Il n’existe pour l’instant qu’une seule manière de parcourir un curseur : du premier au dernier
enregistrement.
Instructions
Les instructions disponibles pour travailler avec des curseurs sont définies dans le tableau
suivant :
Figure 7-3 Principes d’un curseur
CREATE PROCEDURE
nomSousProgramme
[(... ) ]
BEGIN
DECLARE v2...;
DECLARE v3... ;
DECLARE CURSOR curs1 FOR SELECT brevet,nbhVol,
comp
FROM Pilote WHERE comp = ‘AF’ ;
...
...
OPEN curs1 ;
F ETCH curs1 INTO v1,v2,v3 ;
...
E ND ;
$
curs1
PL -1
2450
AF
PL -2
900
AF
PL -5
200
AF
v1
v2
v3
PL -1
2450
AF
Curseur
DECLARE v1...;
Tableau 7-5 Instructions pour les curseurs
Instructions
Commentaires et exemples
CURSOR FOR requête;
Déclaration du curseur.
DECLARE curs1 CURSOR FOR
SELECT brevet,nbHVol,comp
FROM bdsoutou.Pilote WHERE comp = 'AF';
OPEN nomCurseur;
Ouverture du curseur (chargement des lignes). Aucune exception n’est
levée si la requête ne ramène aucune ligne.
OPEN curs1;
FETCH nomCurseur INTO
listeVariables;
Positionnement sur la ligne suivante et chargement de l’enregistrement
courant dans une ou plusieurs variables.
FETCH curs1 INTO var1,var2,var3;
CLOSE nomCurseur;
Ferme le curseur. L’exception « ERROR 1326 (24000): Cursor is
not open » se déclenche si des accès au curseur sont opérés après
sa fermeture.
CLOSE curs1;
