Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pourquoi ma requête marche chez moi, mais ne marche pas chez le client ?

17 réponses
Avatar
JC
Bonjour

Je lance ici une discussion que j=92ai entam=E9e =E0 la fin d=92une autre s=
ans
rapport, ceci afin que tout le monde puisse la voir (et y
r=E9pondre :-) ).

J=92ai une application qui s=92installe chez mon client dans =AB mes
documents =BB car il n=92a pas de droit admin. J=92ai fait g=E9n=E9r=E9
l=92installation par windev avec le framework contenant les DLL
n=E9cessaires =E0 l=92appli (propos=E9e par wd) int=E9gr=E9 =E0 l=92ex=E9cu=
table (j=92ai
essay=E9 aussi avec le framework =E0 part, mais le probl=E8me reste le
m=EAme).

Une fois install=E9e, mon appli fonctionne tr=E8s bien =E0 95%: les fichier=
s
sont cr=E9=E9s parfaitement, leurs mises =E0 jour se passent sans probl=E8m=
e
(quand j'ouvre les fichiers, leurs contenus sont nikel), mais
certaines fen=EAtres qui utilisent des requ=EAtes non int=E9gr=E9es pour
afficher mes fichiers ne renvoient aucun r=E9sultat. Apr=E8s de nombreux
tests, il s=92av=E8re que le probl=E8me est uniquement sur les requ=EAtes a=
vec
deux jointures (je ne sais pas si c=92est le bon terme, excusez-moi =85).
Celles avec une seule jointure fonctionnent tr=E8s bien chez le client
et chez moi. Je pr=E9cise que les fichiers de donn=E9es sont au bon
endroit chez le client, et que leurs contenus sont ceux attendus. Il
ne faut donc pas chercher a piori sur un probl=E8me de contenu ou de
localisation de fichier (le fichier REP est Ok, les propri=E9t=E9s
R=E9pertoire aussi).

Pour en revenir aux requ=EAtes =E0 double jointure, la requ=EAte ci-dessous
par exemple ne donne aucun r=E9sultat chez le client (et le
HExecuteRequ=EAte renvoie vrai), mais fonctionne tr=E8s bien chez moi :

SELECT
Diapositive.Num=E9ro AS Num=E9ro,
Diapositive.Titre AS Titre,
Diapositive_MotCl=E9.UnMot AS UnMot,
Diapositive_MotCl=E9.Num=E9ro_Diapositive AS Num=E9ro_Diapositive,
MotCl=E9.UnMotCl=E9 AS UnMotCl=E9
FROM
MotCl=E9,
Diapositive_MotCl=E9,
Diapositive
WHERE
Diapositive_MotCl=E9.UnMot =3D
MotCl=E9.UnMotCl=E9
AND Diapositive_MotCl=E9.Num=E9ro_Diapositive =3D
Diapositive.Num=E9ro
AND
(
MotCl=E9.UnMotCl=E9 IN ('voiture', 'rouge', 'maison')
)

Alors que celle-ci fonctionne tr=E8s bien chez le client et chez moi :

SELECT
Diapositive.Num=E9ro AS Num=E9ro,
Diapositive.Titre AS Titre,
Diapositive_MotCl=E9.UnMot AS UnMot,
Diapositive_MotCl=E9.Num=E9ro_Diapositive AS Num=E9ro_Diapositive
FROM
Diapositive,
Diapositive_MotCl=E9
WHERE
Diapositive_MotCl=E9.Num=E9ro_Diapositive =3D
Diapositive.Num=E9ro
AND
(
Diapositive_MotCl=E9.UnMot IN ('voiture', 'rouge',
'maison')
)

Pour info, j=92ai cr=E9=E9 mes requ=EAtes avec l=92assistant Windev, et aus=
si
directement en SQL. Ensuite je les ai test=E9es directement depuis WDMAP
(pas de probl=E8me, elles fonctionnent toutes chez moi), puis je les ai
reli=E9es =E0 des tables dans des fen=EAtres, et =E7a fonctionne tr=E8s bie=
n
chez moi.

Est-ce que c=92est moi qui fais une erreur dans les requ=EAtes, dans
l=92installation=85 ou est-ce un bug Windev ?

JC

7 réponses

1 2
Avatar
JC
> tu n'aurais pas un code "SiEnModeTest" qui trainerait dans un coin ?



non, désolé. Par contre, j'ai une nouvelle info. J'ai testé ceci :
SELECT Diapositive_MotClé.UnMot, MotClé.UnMotClé
FROM MotClé, Diapositive_MotClé
WHERE
Diapositive_MotClé.UnMot = MotClé.UnMotClé
AND
(
Diapositive_MotClé.UnMot IN ('renard', 'balcon')
)

Ca Marche sur les 2 postes (le mien et le client). Par contre, la
requête ci-dessous (c'est la même sauf la dernière ligne qui est
modifiée) ne marche que chez moi, et ne renvoie rien chez le client.

SELECT Diapositive_MotClé.UnMot, MotClé.UnMotClé
FROM MotClé, Diapositive_MotClé
WHERE
Diapositive_MotClé.UnMot = MotClé.UnMotClé
AND
(
MotClé.UnMotClé IN ('renard', 'balcon')
)

Pourquoi ? c'est sûrement en lien avec mon pb...
Pour info, les champs "mot-clé" pour les jointures sont de même type
(texte, 50 caract). Dans le fichier de liaison, c'est une clé avec
doublon (puisque j'ai créé une clé composée), et dans le fichier
MotClé, c'est une clé unique.

JC
Avatar
Firetox
Bonjour,

une seule chose peut faire ca (avec juste la derniere ligne)
c'est que motCle.UnMot contient des espace et n'est plus renard mais 'renard
'
dans ce cas la requete ne remontera plus rien

je me pencherais bien sur cette direction pour confirmé il faut changer la
derniere ligne en :

MotClé.UnMotClé like 'renard%' OR MotClé.UnMotClé like 'balcon%'

si elle renvoie des ligne alors c'est les blancs

@+
"JC" a écrit dans le message de news:

tu n'aurais pas un code "SiEnModeTest" qui trainerait dans un coin ?



non, désolé. Par contre, j'ai une nouvelle info. J'ai testé ceci :
SELECT Diapositive_MotClé.UnMot, MotClé.UnMotClé
FROM MotClé, Diapositive_MotClé
WHERE
Diapositive_MotClé.UnMot = MotClé.UnMotClé
AND
(
Diapositive_MotClé.UnMot IN ('renard', 'balcon')
)

Ca Marche sur les 2 postes (le mien et le client). Par contre, la
requête ci-dessous (c'est la même sauf la dernière ligne qui est
modifiée) ne marche que chez moi, et ne renvoie rien chez le client.

SELECT Diapositive_MotClé.UnMot, MotClé.UnMotClé
FROM MotClé, Diapositive_MotClé
WHERE
Diapositive_MotClé.UnMot = MotClé.UnMotClé
AND
(
MotClé.UnMotClé IN ('renard', 'balcon')
)

Pourquoi ? c'est sûrement en lien avec mon pb...
Pour info, les champs "mot-clé" pour les jointures sont de même type
(texte, 50 caract). Dans le fichier de liaison, c'est une clé avec
doublon (puisque j'ai créé une clé composée), et dans le fichier
MotClé, c'est une clé unique.

JC
Avatar
JC
les LIKE n'ont rien donné chez moi en mode EXE, zéro ligne dans la
table résultat, mais donnent de bons résultats en mode GO. De plus,
les mots-clés sont ajoutés par une procédure perso qui élimine tous
les espaces inutiles. Mes données sont OK, c'est sûr.
JC
Avatar
JC
Donc j'ai testé ces deux requêtes séparément. Chez moi, en GO depui s
Windev, elles marchent très bien. Idem en lançant l'exécutable depuis
Windev, elles marchents très bien. MAIS quand je lance l'exe chez moi
après avoir fait l'installation créée par windev (c-a-d comme le
ferait le client), elles ne donnent AUCUN résultat !! :-( Je précise
que les fichiers sont corrects, je les fait afficher par l'application
pour vérifier chaque fois.
SELECT
Diapositive.Numéro AS Numéro,
Diapositive.Titre AS Titre,
Diapositive_MotClé.UnMot AS UnMot,
Diapositive_MotClé.Numéro_Diapositive AS Numéro_Diapositive,
MotClé.UnMotClé AS UnMotClé
FROM
Diapositive
JOIN Diapositive_MotClé ON Diapositive_MotClé.Numéro_Diapositive =
Diapositive.Numéro
LEFT JOIN MotClé ON Diapositive_MotClé.UnMot =MotClé.UnMotClé
AND MotClé.UnMotClé IN ('renard', 'balcon')

SELECT
Diapositive.Numéro AS Numéro,
Diapositive.Titre AS Titre,
Diapositive_MotClé.UnMot AS UnMot,
Diapositive_MotClé.Numéro_Diapositive AS Numéro_Diapositive,
MotClé.UnMotClé AS UnMotClé
FROM
Diapositive
JOIN Diapositive_MotClé ON Diapositive_MotClé.Numéro_Diapositive =
Diapositive.Numéro
JOIN MotClé ON Diapositive_MotClé.UnMot =MotClé.UnMotClé
AND MotClé.UnMotClé IN ('renard', 'balcon')

J'en perds mon latin :-( :-( :-(

JC
Avatar
Firetox
regarde comme le disait daniel si il y a une difference entre les dll
installée chez le client
et les dll dans le rep exe et celles mise dans l'install


"JC" a écrit dans le message de news:

Donc j'ai testé ces deux requêtes séparément. Chez moi, en GO depuis
Windev, elles marchent très bien. Idem en lançant l'exécutable depuis
Windev, elles marchents très bien. MAIS quand je lance l'exe chez moi
après avoir fait l'installation créée par windev (c-a-d comme le
ferait le client), elles ne donnent AUCUN résultat !! :-( Je précise
que les fichiers sont corrects, je les fait afficher par l'application
pour vérifier chaque fois.
SELECT
Diapositive.Numéro AS Numéro,
Diapositive.Titre AS Titre,
Diapositive_MotClé.UnMot AS UnMot,
Diapositive_MotClé.Numéro_Diapositive AS Numéro_Diapositive,
MotClé.UnMotClé AS UnMotClé
FROM
Diapositive
JOIN Diapositive_MotClé ON Diapositive_MotClé.Numéro_Diapositive Diapositive.Numéro
LEFT JOIN MotClé ON Diapositive_MotClé.UnMot =MotClé.UnMotClé
AND MotClé.UnMotClé IN ('renard', 'balcon')

SELECT
Diapositive.Numéro AS Numéro,
Diapositive.Titre AS Titre,
Diapositive_MotClé.UnMot AS UnMot,
Diapositive_MotClé.Numéro_Diapositive AS Numéro_Diapositive,
MotClé.UnMotClé AS UnMotClé
FROM
Diapositive
JOIN Diapositive_MotClé ON Diapositive_MotClé.Numéro_Diapositive Diapositive.Numéro
JOIN MotClé ON Diapositive_MotClé.UnMot =MotClé.UnMotClé
AND MotClé.UnMotClé IN ('renard', 'balcon')

J'en perds mon latin :-( :-( :-(

JC
Avatar
JC
Dans l'install, j'ai mis toutes les DLL pour être sûr. Mon poste et
celui du client ont les mêmes DLL, garanti à 100%. C'est moi qui fais
l'install, et je purge tout à chaque fois avant de réinstaller.
Avatar
Gilles le nouveau
Pour la facilité la lecture des réponses, cher firetox, pourrais-tu
coté ?
. Merci. et bisous ;)
Firetox avait énoncé :
regarde comme le disait daniel si il y a une difference entre les dll
installée chez le client
et les dll dans le rep exe et celles mise dans l'install


"JC" a écrit dans le message de news:

Donc j'ai testé ces deux requêtes séparément. Chez moi, en GO depuis
Windev, elles marchent très bien. Idem en lançant l'exécutable depuis
Windev, elles marchents très bien. MAIS quand je lance l'exe chez moi
après avoir fait l'installation créée par windev (c-a-d comme le
ferait le client), elles ne donnent AUCUN résultat !! :-( Je précise
que les fichiers sont corrects, je les fait afficher par l'application
pour vérifier chaque fois.
SELECT
Diapositive.Numéro AS Numéro,
Diapositive.Titre AS Titre,
Diapositive_MotClé.UnMot AS UnMot,
Diapositive_MotClé.Numéro_Diapositive AS Numéro_Diapositive,
MotClé.UnMotClé AS UnMotClé
FROM
Diapositive
JOIN Diapositive_MotClé ON Diapositive_MotClé.Numéro_Diapositive > Diapositive.Numéro
LEFT JOIN MotClé ON Diapositive_MotClé.UnMot =MotClé.UnMotClé
AND MotClé.UnMotClé IN ('renard', 'balcon')

SELECT
Diapositive.Numéro AS Numéro,
Diapositive.Titre AS Titre,
Diapositive_MotClé.UnMot AS UnMot,
Diapositive_MotClé.Numéro_Diapositive AS Numéro_Diapositive,
MotClé.UnMotClé AS UnMotClé
FROM
Diapositive
JOIN Diapositive_MotClé ON Diapositive_MotClé.Numéro_Diapositive > Diapositive.Numéro
JOIN MotClé ON Diapositive_MotClé.UnMot =MotClé.UnMotClé
AND MotClé.UnMotClé IN ('renard', 'balcon')

J'en perds mon latin :-( :-( :-(

JC


1 2