1 pièce(s) jointe(s)
Mon curseur ne me retourne qu'une valeur
Bonjour à tous,
J'essaie de faire une procédure qui devrait me retourner plusieurs lignes, je l'ai écrite comme je l'aurais fait avec sqlserver à 2 - 3 petits trucs près.
Or, au moment de l'appel de la procédure, elle ne me retourne qu'un enregistrement, je merde quelque-part soit au niveau du soit
Code:
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
Voici la procédure stockée :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
DELIMITER //
CREATE DEFINER=`root`@`localhost` PROCEDURE `calculBudget`(p_idUtilisateur INT)
BEGIN
DECLARE montant DECIMAL(9,2);
DECLARE done INT DEFAULT 0;
DECLARE i_idBudget INTEGER;
DECLARE i_montantBudget DECIMAL(9,2);
DECLARE cur1 CURSOR FOR SELECT idBudget,montantBudget FROM budget WHERE idUtilisateur = p_idUtilisateur;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
SET montant = 0;
OPEN cur1;
REPEAT
FETCH cur1 INTO i_idBudget, i_montantBudget;
SET montant = montant + i_montantBudget;
SELECT i_idBudget, i_montantBudget, montant;
UNTIL done END REPEAT;
CLOSE cur1;
END// |
La table est très simple, voir la pj.
Merci par avance