bonjour,

Je lit actuellement un livre consacré à mysql et je suis tombé sur la syntaxe " DECLARE CONTINUE HANDLER FOR NOT FOUND SET fincurs := 1;" , que je n'arrive pas à comprendre. J'ai mis ci-dessous la procédure dans laquelle elle est présente, quelqu'un saurait 'il m'expliquer s'il vous plait ,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
delimiter $
 
DROP PROCEDURE bdutil.cursex1$
 
CREATE PROCEDURE bdutil.cursex1()
BEGIN
  DECLARE fincurs BOOLEAN DEFAULT 0;
  DECLARE v_brevet VARCHAR(6);
  DECLARE v_nbHv   DECIMAL(7,2);
  DECLARE v_comp   VARCHAR(4);
 
  DECLARE curs CURSOR FOR 
	SELECT brevet,nbHVol,comp
	FROM bdutil.Pilote FOR UPDATE;				---Déclaration du curseur avec verrou.
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET fincurs := 1;
  SET AUTOCOMMIT = 0;
 
  OPEN curs;
  FETCH curs INTO v_brevet,v_nbHv,v_comp;
  WHILE (NOT fincurs) DO 					---Chargement et parcours du curseur.
	IF (v_comp='AF') THEN 
		UPDATE bdutil.Pilote SET nbHVol = nbHVol + 100				---Mise à jour de la table Pilote par l’intermédiaire du curseur.
		WHERE brevet = v_brevet;
	ELSEIF (v_comp='SING') THEN 
	       UPDATE bdutil.Pilote SET nbHVol = nbHVol - 100 WHERE brevet = v_brevet;
	ELSE
               DELETE FROM bdutil.Pilote WHERE brevet = v_brevet;
	END IF;
 
	FETCH curs INTO v_brevet,v_nbHv,v_comp;  
  END WHILE;
  CLOSE curs;
 COMMIT;			---Validation de la transaction.
END;
$
Merci beaucoup pour votre aide