PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Problème de récursivité
Problème de récursivité
Iniciado por The Legacy, ago., 09 2004 11:17 AM - 2 respostas
Publicado em agosto, 09 2004 - 11:17 AM
Bonjour,

Je viens vous demander de l'aide concernant l'utilisation d'un objet source
de données dans une fontion récursive.
Voici mon problème :

J'ai une fenetre avec un treeview et une liste. Le contenu de la liste est
rempli à l'ouverture de la fenetre. Pour celle-ci, pas de problème. Par
contre, le problème survient quand je dois remplir le contenu du treeview
selon la sélection effectuée dans la liste. En effet, lorsque je sélectionne
un élément de la liste, je lance une fonction récursive qui parcours un
fichier et construit la structure du treeview. Seulement, lorsque je fais le
premier appel à la fonction, j'ouvre uns source de données avec un
HExecuteRequeteSql et suivant les données lues, je rappele la même fonction.
Une fois le traitement terminé dans l'instance de la fonction, je sors de
celle-ci en fermant la source de données de l'instance et en revoyant une
valeur pour continuer le traitement dans l'appel précédent de la fonction.
Et là, j'ai un problème car lorsque je fais un hlitsuivant après être revenu
d'une instance de fonction, j'ai une erreur me disant que le fichier
n'existe pas et en effet, la source de données est fermée.

Comment dois-je faire pour pouvoir utiliser une source de donnée portant le
même nom dans plusieurs instances d'une même fonction ? Si je ne peux pas,
comment faire pour déclarer une source de données unique par appel de
fonction , par exemple avec des opérateurs d'indirection {} et pouvoir
accéder aux membres de la source de données?

Merci d'avance pour votre aide, c'est assez urgent svp .
Publicado em agosto, 09 2004 - 11:40 AM
"The_Legacy" <michel.gillet33@wanadoo.fr> wrote:

Bonjour,

Je viens vous demander de l'aide concernant l'utilisation d'un objet source
de données dans une fontion récursive.
Voici mon problème :

J'ai une fenetre avec un treeview et une liste. Le contenu de la liste est
rempli à l'ouverture de la fenetre. Pour celle-ci, pas de problème. Par
contre, le problème survient quand je dois remplir le contenu du treeview
selon la sélection effectuée dans la liste. En effet, lorsque je sélectionne
un élément de la liste, je lance une fonction récursive qui parcours un
fichier et construit la structure du treeview. Seulement, lorsque je fais

le
premier appel à la fonction, j'ouvre uns source de données avec un
HExecuteRequeteSql et suivant les données lues, je rappele la même fonction.
Une fois le traitement terminé dans l'instance de la fonction, je sors de
celle-ci en fermant la source de données de l'instance et en revoyant une
valeur pour continuer le traitement dans l'appel précédent de la fonction.
Et là, j'ai un problème car lorsque je fais un hlitsuivant après être revenu
d'une instance de fonction, j'ai une erreur me disant que le fichier
n'existe pas et en effet, la source de données est fermée.

Comment dois-je faire pour pouvoir utiliser une source de donnée portant

le
même nom dans plusieurs instances d'une même fonction ? Si je ne peux pas,
comment faire pour déclarer une source de données unique par appel de
fonction , par exemple avec des opérateurs d'indirection {} et pouvoir
accéder aux membres de la source de données?

Merci d'avance pour votre aide, c'est assez urgent svp .


Il suffit d'ajouter un paramètre à la fonction, qui vaut Non pour le premier
appel, et oui dans les appels "récursif".
Au début de la fonction, si la valeur du paramètre est Non, tu ouvres ta
source de données. Et à la fin de la fonction, tu la refermes.
Si le paramètre vaut Oui, tu ne fais rien ( à part bien sûr le traitement
de la fonction ;) ).

Frédéric.
Publicado em agosto, 09 2004 - 4:19 PM
Re,

Ca y est, j'ai trouvé une solution.
J'ai en fait remplacé ma source de données par un opération d'indirection
dont le nom est construit avec un des paramètres de la fonction.

A bientôt


"The_Legacy" <michel.gillet33@wanadoo.fr> a écrit dans le message de
news:41172527$1@news.pcsoft.fr...

Bonjour,

Je viens vous demander de l'aide concernant l'utilisation d'un objet

source
de données dans une fontion récursive.
Voici mon problème :

J'ai une fenetre avec un treeview et une liste. Le contenu de la liste est
rempli à l'ouverture de la fenetre. Pour celle-ci, pas de problème. Par
contre, le problème survient quand je dois remplir le contenu du treeview
selon la sélection effectuée dans la liste. En effet, lorsque je

sélectionne
un élément de la liste, je lance une fonction récursive qui parcours un
fichier et construit la structure du treeview. Seulement, lorsque je fais

le
premier appel à la fonction, j'ouvre uns source de données avec un
HExecuteRequeteSql et suivant les données lues, je rappele la même

fonction.
Une fois le traitement terminé dans l'instance de la fonction, je sors de
celle-ci en fermant la source de données de l'instance et en revoyant une
valeur pour continuer le traitement dans l'appel précédent de la fonction.
Et là, j'ai un problème car lorsque je fais un hlitsuivant après être

revenu
d'une instance de fonction, j'ai une erreur me disant que le fichier
n'existe pas et en effet, la source de données est fermée.

Comment dois-je faire pour pouvoir utiliser une source de donnée portant

le
même nom dans plusieurs instances d'une même fonction ? Si je ne peux pas,
comment faire pour déclarer une source de données unique par appel de
fonction , par exemple avec des opérateurs d'indirection {} et pouvoir
accéder aux membres de la source de données?

Merci d'avance pour votre aide, c'est assez urgent svp .