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

10 réponses

1 2
Avatar
yannick.rusch
Bonjour

Es-tu sûr que tes fichiers de données et ceux de ton client
contiennent les mêmes enregistrements ? Que le fichier, dans ton
exemple, MotClé n'est pas vide chez le client ? Car je ne vois à
priori pas d'autres explications, tes requêtes sont correctes (prouvé
par le fait que le HExecuteRequete renvoie vrai)

Yannick
Avatar
JC
Bonjour

Oui, je suis sûr que les fichiers chez le client sont bons, car j'ai
fait des fenêtres qui affichent leurs contenus sans aucun traitement,
et tout est OK à l'écran.
Ca me rassure que la requête soit OK (je ne suis pas pro en SQL). Peut-
être est-ce dans l'installation que je fait quelque chose de mal ?

JC
Avatar
Firetox
Bonjour,

et avec 2 jonture mais sur les 2 premieres tables ?

FROM
MotClé,
Diapositive_MotClé

est ce que cela fonctionne chez les 2 ? car la requete qui fonctionne chez
les 2 n'utilise pas la table MotCle

sinon essayez cette requete qui est la meme que la votre sur les 3 tables

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
MotClé
JOIN Diapositive_MotClé ON Diapositive_MotClé.UnMot =MotClé.UnMotClé
JOIN Diapositive ON Diapositive_MotClé.Numéro_Diapositive =
Diapositive.Numéro

WHERE
MotClé.UnMotClé IN ('voiture', 'rouge', 'maison')

PS je fais des requetes en HF sur des jointure allant sur 5 ou 6 tables sans
problemes
ne pas oubliez dans le Exexcute de mettre HsansCorrection

Bon dev
@+

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

Bonjour

Oui, je suis sûr que les fichiers chez le client sont bons, car j'ai
fait des fenêtres qui affichent leurs contenus sans aucun traitement,
et tout est OK à l'écran.
Ca me rassure que la requête soit OK (je ne suis pas pro en SQL). Peut-
être est-ce dans l'installation que je fait quelque chose de mal ?

JC
Avatar
Gilles le nouveau
Bonjour,
J'ai suivi un peu ton problème .
Il y a une chose que je ne comprends pas .
Pourquoi dans un premier , n'installes-tu pas ton logiciel en tant
qu'admin sur le poste de ton client.
Tu verras bien si cela fonctionne.
Je comprends que tu souhaites résoudre le problème, mais cela peut
venir ensuite.
Bon dev.
Gilles

JC a présenté l'énoncé suivant :
Bonjour

Je lance ici une discussion que j’ai entamée à la fin d’une autre sans
rapport, ceci afin que tout le monde puisse la voir (et y
répondre :-) ).

J’ai une application qui s’installe chez mon client dans « mes
documents » car il n’a pas de droit admin. J’ai fait généré
l’installation par windev avec le framework contenant les DLL
nécessaires à l’appli (proposée par wd) intégré à l’exécutable (j’ai
essayé aussi avec le framework à part, mais le problème reste le
même).

Une fois installée, mon appli fonctionne très bien à 95%: les fichiers
sont créés parfaitement, leurs mises à jour se passent sans problème
(quand j'ouvre les fichiers, leurs contenus sont nikel), mais
certaines fenêtres qui utilisent des requêtes non intégrées pour
afficher mes fichiers ne renvoient aucun résultat. Après de nombreux
tests, il s’avère que le problème est uniquement sur les requêtes avec
deux jointures (je ne sais pas si c’est le bon terme, excusez-moi …).
Celles avec une seule jointure fonctionnent très bien chez le client
et chez moi. Je précise que les fichiers de données 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ème de contenu ou de
localisation de fichier (le fichier REP est Ok, les propriétés
Répertoire aussi).

Pour en revenir aux requêtes à double jointure, la requête ci-dessous
par exemple ne donne aucun résultat chez le client (et le
HExecuteRequête renvoie vrai), mais fonctionne très bien chez moi :

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
MotClé,
Diapositive_MotClé,
Diapositive
WHERE
Diapositive_MotClé.UnMot > MotClé.UnMotClé
AND Diapositive_MotClé.Numéro_Diapositive > Diapositive.Numéro
AND
(
MotClé.UnMotClé IN ('voiture', 'rouge', 'maison')
)

Alors que celle-ci fonctionne très bien chez le client et chez moi :

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
FROM
Diapositive,
Diapositive_MotClé
WHERE
Diapositive_MotClé.Numéro_Diapositive > Diapositive.Numéro
AND
(
Diapositive_MotClé.UnMot IN ('voiture', 'rouge',
'maison')
)

Pour info, j’ai créé mes requêtes avec l’assistant Windev, et aussi
directement en SQL. Ensuite je les ai testées directement depuis WDMAP
(pas de problème, elles fonctionnent toutes chez moi), puis je les ai
reliées à des tables dans des fenêtres, et ça fonctionne très bien
chez moi.

Est-ce que c’est moi qui fais une erreur dans les requêtes, dans
l’installation… ou est-ce un bug Windev ?

JC


Avatar
JC
> et avec 2 jonture mais sur les 2 premieres tables ?



je ne vois pas comment faire ça vu mon analyse. A priori, je n'ai pas
les champs et tables nécessaires. SI vous voulez, je peux vous donner
le détail de l'analyse; elle est très très simple je vous rassure.

sinon essayez cette requete qui est la meme que la votre sur les 3 tables



j'ai essayé votre requête. Elle ne marche pas chez mon client, mais
marche très bien chez moi.


PS je fais des requetes en HF sur des jointure allant sur 5 ou 6 tables s ans
problemes



j'en suis convaincu, et c'est une des raisons qui m'a fait acheter WD.

ne pas oubliez dans le Exexcute de mettre HsansCorrection



je fais Hexecute avec HrequeteDefaut, ce n'est pas bon ?

JC
Avatar
JC
> Pourquoi dans un premier , n'installes-tu pas ton logiciel en tant
qu'admin sur le poste de ton client.
Tu verras bien si cela fonctionne.



Je viens de tester sur mon PC où je suis admin. Et j'ai le même
problème que mon client... ! Je ne comprends plus rien... Pourquoi en
mode GO ça marche, et une fois installé (avec tous les droits admin),
ça ne marche plus ?

JC
Avatar
Firetox
Bonjour,

essayez celle ci
apres la meme mais en enlevant le LEFT devant join (cela identifiera que la
derniere table ne renvoie rien chez votre cient)
et donc que le probleme vient de la LEFT JOIN vous renverra votre deuxieme
requete si on enleve le LEFT alors si les données ne sont pas presente dans
motCle chez votre client la requete s'execute correctement mais ne renverra
rien

on pourra en deduire que chez votre client la table motCle n'est pas la meme
que chez vous

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 MotCle ON Diapositive_MotClé.UnMot =MotClé.UnMotClé AND
MotClé.UnMotClé IN ('voiture', 'rouge', 'maison')

c'est elle la qu'il faut tester car je pense que le probleme vient de la
table motCle (qui ne se retrouve pas dans la requete avec 2 tables)

sinon essayez avec hSansCorrection a la place de hrequeteDefaut

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

et avec 2 jonture mais sur les 2 premieres tables ?



je ne vois pas comment faire ça vu mon analyse. A priori, je n'ai pas
les champs et tables nécessaires. SI vous voulez, je peux vous donner
le détail de l'analyse; elle est très très simple je vous rassure.

sinon essayez cette requete qui est la meme que la votre sur les 3 tables



j'ai essayé votre requête. Elle ne marche pas chez mon client, mais
marche très bien chez moi.


PS je fais des requetes en HF sur des jointure allant sur 5 ou 6 tables
sans
problemes



j'en suis convaincu, et c'est une des raisons qui m'a fait acheter WD.

ne pas oubliez dans le Exexcute de mettre HsansCorrection



je fais Hexecute avec HrequeteDefaut, ce n'est pas bon ?

JC
Avatar
Firetox
en mode admin le fichier motCle n'est pas le meme ou vide ?


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

Pourquoi dans un premier , n'installes-tu pas ton logiciel en tant
qu'admin sur le poste de ton client.
Tu verras bien si cela fonctionne.



Je viens de tester sur mon PC où je suis admin. Et j'ai le même
problème que mon client... ! Je ne comprends plus rien... Pourquoi en
mode GO ça marche, et une fois installé (avec tous les droits admin),
ça ne marche plus ?

JC
Avatar
Daniel
JC a écrit :
Pourquoi dans un premier , n'installes-tu pas ton logiciel en tant
qu'admin sur le poste de ton client.
Tu verras bien si cela fonctionne.



Je viens de tester sur mon PC où je suis admin. Et j'ai le même
problème que mon client... ! Je ne comprends plus rien... Pourquoi en
mode GO ça marche, et une fois installé (avec tous les droits admin),
ça ne marche plus ?

JC


cela ressemble à un problème de framework partiellement installé. Mettre
tous les dll windev dans le répertoires de l'exe et faire le test.



--
suivre ce lien pour répondre:
http://cerbermail.com/?2KrV3YZXnn
Daniel
;-)
Avatar
jacques Trepp
Bonjour,
tu n'aurais pas un code "SiEnModeTest" qui trainerait dans un coin ?

ça m'est déjà arrivé :(

"JC" a écrit dans le message de
news:
Pourquoi dans un premier , n'installes-tu pas ton logiciel en tant
qu'admin sur le poste de ton client.
Tu verras bien si cela fonctionne.



Je viens de tester sur mon PC où je suis admin. Et j'ai le même
problème que mon client... ! Je ne comprends plus rien... Pourquoi en
mode GO ça marche, et une fois installé (avec tous les droits admin),
ça ne marche plus ?

JC

--
Jacques TREPP
SAPAM SA
3, rue Jean Mermoz
81160 - ST JUERY

1 2