PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV (earlier versions) → WD22- Requete fonctionne mais editeur en défaut
WD22- Requete fonctionne mais editeur en défaut
Started by Ramirez22, Feb., 23 2018 3:37 PM - 1 reply
Registered member
60 messages
Popularité : +2 (2 votes)
Posted on February, 23 2018 - 3:37 PM
Bonjour.

c'est dur d'être explicite dans une ligne de titre, alors je vais développer.

J'ai créé une requête assez complexe (pour moi du moins) qui fonctionne très bien dans mon programme, que je le lance depuis l'éditeur en mode "test" ou que je le compile en exécutable.

Je voudrais modifier cette requête car j'ai besoin d'ajouter des tri supplémentaires.
Lorsque j'ouvre l'éditeur de requête (double clic dans l'explorateur de projet), pas de message d'erreur.
Si j'ouvre la description de la requête (via le bouton prévu à cet effet ou en double cliquant sur le champs visuel de résultat de requête), les informations au bas de l'écran sont bizarrement formatées :
Afficher tous les ID_Documents, Code, Code2, Code3, Titre, Indice, Commentaires, FichierPDF, 
FichierSource, ID_Etat, EtatDocument, ID_Palier et Affaire  tels que (  ) ET (  ) ET (  ) .
 Le résultat est trié selon la valeur de Code par ordre croissant. Les doublons sont éliminés.

Remarquez les parenthèses vides.
De même, l'équivalent en SQL
SELECT DISTINCT
FichierDocuments.ID_Documents AS ID_Documents,
FichierDocuments.Code AS Code,
FichierDocuments.Code2 AS Code2,
FichierDocuments.Code3 AS Code3,
FichierDocuments.Titre AS Titre,
FichierDocuments.Indice AS Indice,
FichierDocuments.Commentaires AS Commentaires,
FichierDocuments.FichierPDF AS FichierPDF,
FichierDocuments.FichierSource AS FichierSource,
FichierDocuments.ID_Etat AS ID_Etat,
FichierEtat.EtatDocument AS EtatDocument,
FichierDocuments.ID_Palier AS ID_Palier,
FichierDocuments.Affaire AS Affaire
FROM
FichierEtat,
FichierDocuments,
FichierMarché,
Fichier_Type_Documents,
FichierType
WHERE
FichierType.ID_Type = Fichier_Type_Documents.ID_Type
AND FichierDocuments.ID_Documents = Fichier_Type_Documents.ID_Documents
AND FichierMarché.ID_Marché = FichierDocuments.ID_Marché
AND FichierEtat.ID_Etat = FichierDocuments.ID_Etat
AND
(

(

)
AND
(

)
AND
(

)
)
ORDER BY
Code ASC


Par contre, lorsque j'affiche le code de la requête (clic droit dans l'explorateur de projet ou F2 lorsque la requête est sélectionnée), la requête semble correcte.
SELECT DISTINCT
FichierDocuments.ID_Documents AS ID_Documents,
FichierDocuments.Code AS Code,
FichierDocuments.Code2 AS Code2,
FichierDocuments.Code3 AS Code3,
FichierDocuments.Titre AS Titre,
FichierDocuments.Indice AS Indice,
FichierDocuments.Commentaires AS Commentaires,
FichierDocuments.FichierPDF AS FichierPDF,
FichierDocuments.FichierSource AS FichierSource,
FichierDocuments.ID_Etat AS ID_Etat,
FichierEtat.EtatDocument AS EtatDocument,
FichierDocuments.ID_Palier AS ID_Palier,
FichierDocuments.Affaire AS Affaire
FROM
FichierEtat,
FichierDocuments,
FichierMarché,
Fichier_Type_Documents,
FichierType
WHERE
FichierType.ID_Type = Fichier_Type_Documents.ID_Type
AND FichierDocuments.ID_Documents = Fichier_Type_Documents.ID_Documents
AND FichierMarché.ID_Marché = FichierDocuments.ID_Marché
AND FichierEtat.ID_Etat = FichierDocuments.ID_Etat
AND
(
(
FichierDocuments.Code LIKE %{pCode}%
OR FichierDocuments.Code2 LIKE %{pCode}%
OR FichierDocuments.Code3 LIKE %{pCode}%
)
AND
(
FichierDocuments.Titre LIKE %{pTitre}%
OR FichierDocuments.Commentaires LIKE %{pTitre}%
)
AND FichierType.ID_Type LIKE {pType}
AND FichierDocuments.ID_Palier LIKE %{pBigramme}%
AND FichierMarché.NumeroMarché LIKE %{pMarché}%
)
ORDER BY
Code ASC


Il va sans dire que si j'enregistre la requête depuis l'éditeur de requête, même sans modification, celle-ci ne fonctionne plus.

En désespoir de cause, j'ai refais ma requête en entier depuis l'éditeur, comparaison avec le code SQL initial (tout est identique) mais ça ne fonctionne plus.

Heureusement, j'avais une sauvegarde du projet, je restaure, ça fonctionne. J'essaie de réparer le projet, etc... rien n'y fait : cette #!@# requête est toujours bizarre et ne fonctionne plus dès que je la modifie/enregistre/refait.

J'en perds mon Wlangage ... ;(

Une bonne âme pour m'aider ?
Message modified, February, 23 2018 - 3:38 PM
Registered member
60 messages
Popularité : +2 (2 votes)
Posted on February, 23 2018 - 3:55 PM
Bon,histoire de compléter le schéma ...
J'ai réussi à faire re-fonctionner ma requête.
Je me suis rendu compte en exécutant la requête seule (depuis l'éditeur en laçant "Go") et en donnant quelques valeurs aux paramètres, j'obtenais quelques résultats (qui semblaient conformes par ailleurs).
J'ai donc creusé au niveau de mon programme, et plus précisément au niveau de l'affichage des valeurs retournée par la requête.
Bingo : J'ai trouvé une erreur (j’avais une liste avec une 1ère valeur forcé "en dur" qui renvoyait un "%" par défaut).

Ma question n'a donc plus de caractère urgent, mais j'aimerais bien comprendre comment une requête avec erreur + une erreur de code dans une fenêtre peuvent fonctionner :p

Bonne journée