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

Le
JC
Bonjour

Je lance ici une discussion que j’ai entamée à la fin d’une autre s=
ans
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écu=
table (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 fichier=
s
sont créés parfaitement, leurs mises à jour se passent sans problèm=
e
(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 a=
vec
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 aus=
si
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 bie=
n
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
yannick.rusch
Le #18698501
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
JC
Le #18698671
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
Firetox
Le #18698661
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"
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
Gilles le nouveau
Le #18699231
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


JC
Le #18699221
> 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
JC
Le #18699411
> 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
Firetox
Le #18699401
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"
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
Firetox
Le #18699391
en mode admin le fichier motCle n'est pas le meme ou vide ?


"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
Daniel
Le #18699381
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
;-)
jacques Trepp
Le #18699901
Bonjour,
tu n'aurais pas un code "SiEnModeTest" qui trainerait dans un coin ?

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

"JC" 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

Publicité
Poster une réponse
Anonyme