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 : 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
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