Comment recuperer tous les noeuds d'une arborescence enregistrés dans une BDD, quand on ne connaît pas le nombre maximum de niveau de cette arborescence?
Exemple
Noeud1
|
Noeud2
|
|_Noeud2-1
| |_Noeud2-1-1
| |_Noeud2-1-2
|
|_Noeud2-2
etc, etc...
Comment recuperer tous les noeuds d'une arborescence enregistrés dans une BDD, quand on ne connaît pas le nombre maximum de niveau de cette arborescence?
Exemple
Noeud1
|
Noeud2
|
|_Noeud2-1
| |_Noeud2-1-1
| |_Noeud2-1-2
|
|_Noeud2-2
etc, etc...
Bonjour,
Vu la précision de la question, la réponse risque d'être vague.
Réponse:la récursivité.
Tu prend une procédure qui parcours tous les fils de ton noeud.
Pour chaque fils tu lance la même procédure avec comme noeud de départ le fils en question.
Si tu veux des réponses précises, pose des questions précises, avec nom du sgbd, structure des tables et ce que tu veux faire dessus.
J'ai juste éditer le message pour corriger des fautes d'accords.
a+
Soazig
C'est clair, expose nous ta structure de table et ce que tu veux faire ou obtenir exactement, on est pas devins !!!
Précise aussi ton SGBD ça pourra aider.
McFoggy
Excusez moi, voila quelques précisions. Le SGBD est...Hyperfile de PCSoft(SORRY!!![]()
). Le but que je poursuis, c'est de créer l'arborescence de mon application de SGDT, sachant que c'est le client qui crée son arborescence. C'est pour cela que je ne connais pas le niveau d'indentation de l'arborescence!
En gros, il crée un noeud qui correspond généralement à un service, puis différents noeuds fils différents par le nombre suivant les services, etc, etc...
J'espere que je suis plus precis!!
Tu veux récupérer l'arborescence. C'est donc que tu as crée une structure de table te permettant de la stocker. Quelle est-elle ?
Si tu ne l'as pas créée tu as le choix entre une structure de type père-fils ou une structure par intervalle, regarde le site de SQL*Pro, il y a un chapitre traitant de cela.
Ensuite, on pourra t'aider un peu plus.
McFoggy
Bonjour,
Je suis d'accord avec McFroggy, tu ne nous a pas donné assez de détail, pour qu'on t'aide.
Nénamoins à mon avis ton problème est un problème d'algorithmie, et pour gérer les arbre rien de mieux que la récursivité, donc va voir http://www.developpez.net/forums/viewtopic.php?t=57112
Sur cette page, il y a des liens sur des sites concernant la récursivité.
En fait oui, c'est plus un problème d'algorithme, donc je vais potasser le manuel qu'il y a en lien.
Merci.
Etant donné la taille du manuel, je vais considérer qu'il ya des chances que je trouve mon bonheur, donc que mon problème est résolu.
![]()
Partager