procedure recursive avec Firebird
Bonjour,
Ayant tout d'abord voulu faire une requête recursive (disponible a priori selon le roadmap que dans la version 3), j'ai voulu faire une procedure récusive toute bête mais je ne réussi pas a renvoyer mes données...
Si quelqu'un peux me donner un conseil.
problématique :
j'ai une table user avec les données suivantes :
- USER_ID // ID de l'utilisateur
- USER_SUBSTITUTE_ENABLED // champ pour savoir si la suppléance est activé
- SUBBTITUTE_ID // id du suppléant
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 27 28 29 30 31
| SET TERM ^ ;
CREATE PROCEDURE GET_USER_MSG (
ASUBSTITUTE_ID INTEGER,
ADEPTH INTEGER)
RETURNS (
AUSER_ID INTEGER)
AS
DECLARE VARIABLE TMP_USER_ID INTEGER;
begin
FOR SELECT
USER_ID
FROM
USER
WHERE
SUBSTITUTE_ID =:ASUBSTITUTE_ID
AND
USER_SUBSTITUTE_ENABLED = 1
INTO
TMP_USER_ID
DO
BEGIN
IF (DEPTH > -1) then
BEGIN
EXECUTE PROCEDURE GET_USER_MSG (TMP_USER_ID, :DEPTH-1) RETURNING_VALUES :AUSER_ID;
suspend;
END
END
end^
SET TERM ; ^ |
je ne récupère rien, pourquoi donc ? (dans la base, il y a bien des suppléant actifs et je met 5 en profondeur)
Merci