PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Oracle probleme de tri sur recption de la requete
Oracle probleme de tri sur recption de la requete
Débuté par Fabien, 23 juil. 2018 10:57 - 3 réponses
Membre enregistré
30 messages
Posté le 23 juillet 2018 - 10:57
Bonjour,

dans windev je construit une requete pour oracle (connecteur natif)

voici la requete :
SELECT BLOCKLINK.BLOCKID, Max(to_char(PCBTRACE.ENDTIME,'DD/MM/YYYY HH24:MI:ss'))as dat_max
FROM PCBTRACE
INNER JOIN BLOCKLINK on PCBTRACE.PCBID = BLOCKLINK.PCBID
WHERE PCBTRACE.ENDTIME >= to_date('19/01/2017 11:25:57' ,'DD/MM/YYYY HH24:MI:ss')
GROUP by BLOCKLINK.BLOCKID, BLOCKLINK.BLOCKNO
ORDER by dat_max Asc

j'execute ensuite cette requete avec la fonction
HExécuteRequêteSQL(sd_ns,PC30609_Fujitrax,hRequêteSansCorrection,sQl)

si j'execute la requete sous oracle, les resulats sont biens triés par date mais Windev lui me les range par BLOCKID
Quelqu'un aurait-il une explication voir une solution ?

Cordialement,
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 23 juillet 2018 - 12:07
Et si vous essayez de donner le numéro du champ de tri ?
ORDER by 2 Asc
Posté le 23 juillet 2018 - 12:48
Il se trouve que Fabien a formulé :
Bonjour,

dans windev je construit une requete pour oracle (connecteur natif)

voici la requete :
SELECT BLOCKLINK.BLOCKID, Max(to_char(PCBTRACE.ENDTIME,'DD/MM/YYYY
HH24:MI:ss'))as dat_max
FROM PCBTRACE
INNER JOIN BLOCKLINK on PCBTRACE.PCBID = BLOCKLINK.PCBID
WHERE PCBTRACE.ENDTIME >= to_date('19/01/2017 11:25:57' ,'DD/MM/YYYY
HH24:MI:ss')
GROUP by BLOCKLINK.BLOCKID, BLOCKLINK.BLOCKNO
ORDER by dat_max Asc

j'execute ensuite cette requete avec la fonction
HExécuteRequêteSQL(sd_ns,PC30609_Fujitrax,hRequêteSansCorrection,sQl)

si j'execute la requete sous oracle, les resulats sont biens triés par date
mais Windev lui me les range par BLOCKID
Quelqu'un aurait-il une explication voir une solution ?

Cordialement,


bonjour,

si vous remplacer dat_max dans votre order par
Max(to_char(PCBTRACE.ENDTIME,'DD/MM/YYYY HH24:MI:ss'))
est ce que cela fonctionne ?

--
Cordialement JeAn-PhI
Membre enregistré
30 messages
Posté le 23 juillet 2018 - 15:13
Non, pas mieu,

mais en triant par pcbtrace.endtime directement sans passer par la chaine de caractère, cela semble fonctionner.

Windev n'affiche pas les données dans l'ordre souhaité(dans le debugger) mais il les traite dans le bon ordre.

Bref, c'est résolu.

Merci pour votre aide