PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Requête select invalide?
Requête select invalide?
Iniciado por Samuel, 09,ago. 2019 09:08 - 8 respuestas
Miembro registrado
9 mensajes
Publicado el 09,agosto 2019 - 09:08
Bonjour,

Je me permets de re-mettre en ligne ce sujet, car il n'avais pas recu assez d'attention.
J'ai une table de données qui ressemble à ceci.







J'ai fait une requête sur cette table, de la forme :
SELECT * FROM LX03 WHERE Article={ParamArticle}

Lorsque ParamArticle = << vide >> (une valeur présente dans ma table, avec des lettres), les enregistrements sont bien retournés.








En revanche, lorsque ParamArticle est égal à une suite de chiffres (comme c'est souvent le cas dans la table), ma requête ne renvoit rien ! (par exemple avec 226834: aucun enregistrement ne correspond à ma requête).

J'ai directement copié / collé cette valeur depuis WDMap, aucune possibilité de faute de frappe.
Je teste ma requête directement dans l'éditeur de requetes, donc aucun code n'est à vérifier. Juste un clic droit sur ma requête, tester la requête et on remplit les paramètres.

Pourquoi Windev ne renvoie rien, et surtout, comment le corriger?

Merci, Samuel
Miembro registrado
961 mensajes
Publicado el 09,agosto 2019 - 10:24
Bonjour Samuel,

Comment est la partie du code WL qui exécute la requête ?

Quand tu testes avec l'éditeur de requête tout fonctionne bien ?

Cordialement

OB
Miembro registrado
9 mensajes
Publicado el 09,agosto 2019 - 10:31
obtuli a écrit :
Bonjour Samuel,

Comment est la partie du code WL qui exécute la requête ?

Quand tu testes avec l'éditeur de requête tout fonctionne bien ?

Cordialement

OB

obtuli a écrit :
Bonjour Samuel,

Comment est la partie du code WL qui exécute la requête ?

Quand tu testes avec l'éditeur de requête tout fonctionne bien ?

Cordialement

OB


Justement, je n'exécute pas cette requête via du code. C'est uniquement via l'éditeur de requêtes que je l'utilise. Je ne l'ai pas encore implantée, j'aimerais bien qu'elle fonctionne avant...
Publicado el 09,agosto 2019 - 11:07
Bonjour,

Avez-vous pensé à mettre vos chiffres entre doubles-quottes ? En effet <<vide>> est du texte, les chiffres représentant le code article doivent être transmis de cette façon.
Miembro registrado
166 mensajes
Publicado el 09,agosto 2019 - 11:43
Bonjour;

Les tailles des valeurs de la rubrique "Article" sont différentes ou = 8 caractères ?

quel est le résultat avec l'exemple Article = 20000479 celui qu'on voit sur la première photo.

Bon Dev.
Miembro registrado
9 mensajes
Publicado el 09,agosto 2019 - 14:16
Fouedusa a écrit :
Bonjour;

Les tailles des valeurs de la rubrique "Article" sont différentes ou = 8 caractères ?

quel est le résultat avec l'exemple Article = 20000479 celui qu'on voit sur la première photo.

Bon Dev.


La taille de la rubrique Article est égale à 25 caractères.

Le résultat avec 20000479 est le même : aucun enregistrement ne correspond.

Didier ANTHEAUME a écrit :
Bonjour,

Avez-vous pensé à mettre vos chiffres entre doubles-quottes ? En effet <<vide>> est du texte, les chiffres représentant le code article doivent être transmis de cette façon.


En écrivant dans ma requete : "20000479", rien ne change. Toujours aucun enregistrement.
Merci, Samuel.
Miembro registrado
1.640 mensajes
Publicado el 09,agosto 2019 - 14:48
Alors c'est qu'il manque des caractères, des espaces, caractères spéciaux qu'on ne voit pas ?

Fait un :
HLitPremier(LX03)
TANTQUE PAS HEnDehors(LX03)
Trace(LX03.Article+"("+Taille(LX03.Articles)+"))
Hlitsuivant(LX03)
FIN

Et vérifie si la taille de chaines de caractères correspondent bien a ce que tu vois.

Ou mieux encore,
Met un point d'arret sur TRACE()
et regarde dans le debugger le contenu de LX03.
Mensaje modificado, 09,agosto 2019 - 14:49
Miembro registrado
4.361 mensajes
Publicado el 09,agosto 2019 - 16:39
Bonjour,
1-Le problème est-il le même avec le CCHF ?
2-Qu'affiche la fenêtre de trace pour le code suivant ?
REQ_Test est une Requête SQL =
[
SELECT *
FROM
LX03
WHERE
Article={pArticle}
]
REQ_Test.pArticle="20000479"
HExécuteRequête(REQ_Test)
Trace("Nb d'enregistrements trouvés pour l'article 20000479 : "+HNbEnr(REQ_Test))

REQ_REQ_Test.pArticle=Null
HExécuteRequête(REQ_Test)
Trace("Nb d'enregistrements trouvés pour l'ensemble des articles : "+HNbEnr(REQ_Test))


--
Il y a peut être plus simple, mais, ça tourne
Mensaje modificado, 09,agosto 2019 - 16:41
Miembro registrado
9 mensajes
Publicado el 12,agosto 2019 - 10:20
Merci à François, qui a trouvé la solution! Certains caractères étaient invisibles, et aucun moyen via windev de les voir!
J'ai donc adapté ma requête SQL en fonction de cela. MErci à tous !