Bonjour,
Problème d'erreur :
#1328 Incorrect number of FETCH variables
J'utilise une procédure stockée pour mettre à jour une table (parent) Clients à l'aide du champ règlement de la table (enfant) Commandes.
La clé secondaire porte sur le champ clientId.
Pour se faire voici le code :
Code:
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
| DELIMITER $$
DROP PROCEDURE IF EXISTS `et1050_1`.`SoldeClients` $$
CREATE PROCEDURE `et1050_1`.`SoldeClients` ()
BEGIN
DECLARE V_d DECIMAL(6,2);
DECLARE V_m MEDIUMINT;
DECLARE V_f BOOLEAN DEFAULT FALSE;
DECLARE bob CURSOR FOR
SELECT SUM(`Règlement`),`clientId` FROM `Commandes` GROUP BY `clientId`;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET V_f = TRUE;
OPEN bob;
FETCH bob INTO V_d, V_m;
WHILE (NOT V_f) DO
UPDATE `Clients` SET `CAttc`=V_d where `idClients`=V_m;
FETCH bob into V_d;
END WHILE;
CLOSE bob;
END $$
DELIMITER ; |
Il y a bien deux variables pour le FETCH et c'est précisément ce qui ne plait pas à MySQL. Pourtant, le manuel de référence pratique ce système à deux variables. Voir :
http://dev.mysql.com/doc/refman/5.0/fr/cursors.html
Pourriez-vous me guider ?
Merci !