Bonjour,
Dans mysql il est possible de parcourir le résultat via un curseur déclaré dans une procédure...
L'utilisation des curseurs est relativement facile, il faut
1 - le déclarer et l'instancié sur la requête source : DECLARE nom_cursor CURSOR FOR requête
2 - l'ouvrir : OPEN nom_cursor;
3 - tant que le curseur n'est pas vide, lire la ligne sur lequel pointe le curseur en instanciant des variables locales : FETCH nom_cursor INTO var1, var2;
4 - traitement des données...
5 - fermeture du curseur : CLOSE nom_cursor;
6 - libération de la mémoire alloué au curseur : DEALLOCATE nom_cursor;
NB : lorsque la fin du jeux de résultat est atteinte, l'erreur N°'02000' est levée, à utiliser pour sortir de la boucle...
Bon passons à l'exemple : 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
DELIMITER //
CREATE PROCEDURE cursor_noserie()
BEGIN
DECLARE exit_proc INT DEFAULT 0;
DECLARE var1 VARCHAR(20);
DECLARE my_cursor CURSOR FOR SELECT * FROM T_SERIE;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET exit_proc = 1;
-- Lorsque l'erreur 02000 exit_proc sera incrémenté à 1 et permettra de sortir de la boucle sans afficher d'erreur sur la sortie standard
OPEN my_cursor;
REPEAT
FETCH my_cursor INTO var1;
-- Traitement des données...
UNTIL exit_proc END REPEAT;
CLOSE my_cursor;
DEALLOCATE my_cursor;
END // |
Voilà, si tu as d'autre question, n'hésites pas 
Bonne continuation
Partager