PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Lire le second enregistrement d'une requête
Lire le second enregistrement d'une requête
Iniciado por viog, 23,jul. 2019 15:38 - 2 respuestas
Publicado el 23,julio 2019 - 15:38
Bonjour,

Je fait face à un petit soucis donc je me permet de venir exposer mon problème.
Dans le cadre de la lecture des enregistrements résultant d'une requête SQL, j'aimerais récupérer seulement le second enregistrement. Malheureusement ça ne fonctionne pas comme prévu. J'ai vérifié la requête et elle renvie bien ce qu'il faut.

Voici le code :

HExécuteRequête(REQ_ChercheEmplacementsParDate,hRequêteDéfaut)
SI HNbEnr(REQ_ChercheEmplacementsParDate) > 1 ALORS
HLit(REQ_ChercheEmplacementsParDate,2)

clProchainEmplacement est un objet Emplacement_MALT(REQ_ChercheEmplacementsParDate.IDemplacement_MALT)
RENVOYER clProchainEmplacement

SINON
RENVOYER Null
FIN


Merci !
Miembro registrado
1.640 mensajes
Publicado el 23,julio 2019 - 16:22
Hello,

dans ce cas je ferais :
HExécuteRequête(REQ_ChercheEmplacementsParDate,hRequêteDéfaut)
HLitPremier(REQ_ChercheEmplacementsParDate)
SI HNbEnr(REQ_ChercheEmplacementsParDate) > 1 ALORS
HLitSuivant(REQ_ChercheEmplacementsParDate) // soit le 2eme enregistrement
lProchainEmplacement est un objet Emplacement_MALT(REQ_ChercheEmplacementsParDate.IDemplacement_MALT)
RENVOYER clProchainEmplacement
SINON
RENVOYER Null
FIN
Miembro registrado
324 mensajes
Publicado el 24,julio 2019 - 08:54
L'autre option

Dans la requête on demande le "TOP 2" pour n'avoir que 2 enregistrement
SI hNbEnr(MaRquête) = 2 alors hlitDernier(MaRquête)

Sinon perso je l'aurais fait comme cela

lProchainEmplacement est un objet Emplacement_MALT dynamique

SI HExécuteRequête(REQ_ChercheEmplacementsParDate,hRequêteDéfaut) ALORS
SI HNbEnr(MaRquête) = 2 ALORS HLitDernier(MaRquête)
lProchainEmplacement = allouer un Emplacement_MALT(REQ_ChercheEmplacementsParDate.IDemplacement_MALT)
FIN
FIN

RENVOYER clProchainEmplacement


Le renvoyer devrait renvoyer NULL si l'objet n'a pas été instancier de mémoire ^^