Repositionnement dans un parcours par HRetourPosition

Le
pmoune
Soit le bout de code suivant :

IdSauve est entier
wRequete est Source de Donnes
SI HExcuteRequteSQL(wRequete,hRequteDfaut,"Select
CodeArticle,Designation,CodeFournisseur From Article Order By
CodeArticle") ALORS
HLitPremier(wRequete,"Designation")
TANTQUE PAS HEnDehors(wRequete)
Trace(wRequete.CodeArticle,wRequete.Designation)
IdSauve = HSauvePosition(wRequete)
HLitRecherchePremier(wRequete,"CodeFournisseur","ZZZ")
HRetourPosition(IdSauve)
HLitSuivant(wRequete,"Designation")
FIN
SINON
AfficheErreur()
FIN

On voit qu'u milieu de la boucle, je fais un HLitRecherchePremier sur
une cl diffrente de la cl de parcours, donc je fais un
HSauvePosition() et un HRetourPosition() aprs pour retrouver mon
parcours en cours. Jusque l, tout fonctionne

Maintenant comme cest crit dans laide de la fonction HLitPremier()
je veux utiliser la clause Order By de la requte comme cl de
parcours donc je ne spcifie pas de cl de parcours dans les
HLitPremier() et HLitSuivant() (il est noter que ceci est un
exemple, en ralit la clause Group By de ma requte fait au moins 1=
0
ou 15 lments). Mon code devient alors le suivant :

IdSauve est entier
wRequete est Source de Donnes
SI HExcuteRequteSQL(wRequete,hRequteDfaut,"Select
CodeArticle,Designation,CodeFournisseur From Article Order By
CodeArticle") ALORS
HLitPremier(wRequete)
TANTQUE PAS HEnDehors(wRequete)
Trace(wRequete.CodeArticle,wRequete.Designation)
IdSauve = HSauvePosition(wRequete)
HLitRecherchePremier(wRequete,"CodeFournisseur","ZZZ")
HRetourPosition(IdSauve)
HLitSuivant(wRequete)
FIN
SINON
AfficheErreur()
FIN

Eh bien la, le HRetourPosition() ne rtablit pas le contexte du
parcours, et lors du HLitSuivant(), le HEndehors() devient vrai. Il
ny a donc quun enregistrement affich. Je pense que ceci vient du
fait que la cl de parcours nest pas spcifie. Mais alors comment
contourner ceci car jai absolument besoin de cette fonctionnalit. Je
pourrais construire une cl de parcours contenant les lments de la
clause Order By et utiliser cette cl de parcours a fonctionne, mais
cela alourdit considrablement la requte. Ny a-t-il pas une autre
solution ?

Est-ce pareil en Windev 15 ?

Merci de vos rponses
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
free
Le #20909001
"pmoune" news:
une clé différente de la clé de parcours, donc je fais un
HSauvePosition() et un HRetourPosition() après pour retrouver mon
parcours en cours. Jusque là, tout fonctionne …



Tu suppose (à tort) que hsauveposition mémorise le parcours.
hsauveposition ne mémorise que la position, et pas la clé de parcours.
Publicité
Poster une réponse
Anonyme