Bonjour,

un petit problème de conception...

Voilà ce que je veux faire : gérer les dépendances entre programmes.
Exemple : un programme A appelle B, qui lui même appelle C.
Je veux pouvoir connaître tous les programmes appellant C directement
ou indirectement. Donc A et B dans mon exemple.

J'avais pensé à une simple table TAPPEL (APPELLANT, APPELLE), c'est
simple à remplir :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
APPELLANT   APPELLE
A                 B
B                 C
Ensuite la requête

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
SELECT APPELLANT                  
FROM TAPPEL
WHERE APPELLE   = 'C'
me ramène seulement B ; pour avoir aussi A je dois faire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
SELECT APPELLANT                  
FROM TAPPEL
WHERE APPELLE   = 'C'      
 
UNION                             
 
SELECT APPELLANT                  
FROM TAPPEL
WHERE APPELLE IN                  
   ( SELECT APPELLANT             
     FROM TAPPEL
     WHERE APPELLE   = 'C' 
   )
mais si j'ai plus de 2 niveaux d'appel (ex : C appelle D et je veux connaître
tous les appellants de D) je dois rajouter encore une UNION et ainsi de suite...

Bref vous l'aurez compris, je voudrai que tout cela fonctionne quelque soit
le niveau d'imbrication... Alors une idée ? Une requête qui permet de faire cela ?
Ou peut-être une table faite différemment ?

Merci d'avance...