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

[WD8-MySQL] requête multi-base

6 réponses
Avatar
Manuel Pavy
Bonjour,
J'ai une requete du type :

SELECT distinct *
from bd1.table1 as tab1 left join bd2.table2 as tab2
on tab1.id = tab2.id
WHERE tab2.chp = {param1}

Je la teste, et pas de pb.
Par contre lors du lancement de l'appli, j obtiens une erreur du type
bd1.table2 n'existe pas. Je ne comprends pas pourquoi.
Dans mon analyse, mes tables sont bien reliées à une connexion
différente. Mais j ai des points d interrogation dans l editeur de
requête, m indiquant qu il ignore le type des valeurs retournées.

Si vous pouviez m'aider, cela me serait d une grande utilité.

Merci d avance,

Manu

6 réponses

Avatar
Gégé
Manuel Pavy wrote:
J'ai une requete du type :

SELECT distinct *
from bd1.table1 as tab1 left join bd2.table2 as tab2
on tab1.id = tab2.id
WHERE tab2.chp = {param1}

Je la teste, et pas de pb.
Par contre lors du lancement de l'appli, j obtiens une erreur du type
bd1.table2 n'existe pas. Je ne comprends pas pourquoi.
Si vous pouviez m'aider, cela me serait d une grande utilité.



Et si tu pouvais être précis ce serait mieux :
> MySql en accés natif ou non ?
> Utilisation des fonctions HF ou SQL ?
Avatar
Manuel Pavy
Oui, pardon ; je précise :
ma requete est ajoutée dans le projet en passant par l'éditeur de requete
(en langage SQL).
J utilise un acces natif avec les instructions HExecute()
Et auparavant, les deux tables etaient sous la meme base et cela marchait
tres bien.
J ai effacé la table2 de la premiere base (dans l analyse) et je l ai
rajoutée par la connexion de la base 2.
Si je lie des données d'une fenetre à une requete qui utilise la base 1 et
d'autres données à une autre requete qui utilise la base 2, je n ai aucun
pb. C est lorsque je fais une jointure entre ces 2 tables que ca coince.

Merci pour votre aide.

Manu



Gégé a écrit :

Manuel Pavy wrote:
> J'ai une requete du type :
>
> SELECT distinct *
> from bd1.table1 as tab1 left join bd2.table2 as tab2
> on tab1.id = tab2.id
> WHERE tab2.chp = {param1}
>
> Je la teste, et pas de pb.
> Par contre lors du lancement de l'appli, j obtiens une erreur du type
> bd1.table2 n'existe pas. Je ne comprends pas pourquoi.
> Si vous pouviez m'aider, cela me serait d une grande utilité.

Et si tu pouvais être précis ce serait mieux :
> MySql en accés natif ou non ?
> Utilisation des fonctions HF ou SQL ?


Avatar
Gégé
Manuel Pavy wrote:

Oui, pardon ; je précise :
ma requete est ajoutée dans le projet en passant par l'éditeur de requete
(en langage SQL).
J utilise un acces natif avec les instructions HExecute()
Et auparavant, les deux tables etaient sous la meme base et cela marchait
tres bien.
J ai effacé la table2 de la premiere base (dans l analyse) et je l ai
rajoutée par la connexion de la base 2.



Hum ! Un SHOW TABLES te renvoie quoi ?
Recharge ton serveur MySql pour voir.
Avatar
Manu
> Et auparavant, les deux tables etaient sous la meme base et cela
marchait tres bien.



Quand vous parlez de base vous parlez de schéma dans une instance MySQL ?
Pourqoi cette question ? voir juste en dessous

J ai effacé la table2 de la premiere base (dans l analyse) et je l ai
rajoutée par la connexion de la base 2.



Si votre table est sur le même serveur pourquoi ouvrir une seconde connexion
?

Si je lie des données d'une fenetre à une requete qui utilise la base
1 et d'autres données à une autre requete qui utilise la base 2, je n
ai aucun pb. C est lorsque je fais une jointure entre ces 2 tables
que ca coince.



Si vous avez 2 bases sur 2 postes différents et que vous tentez de faire des
jointure entre elles je comprends votre difficulté.

Si c'est de 2 schémas que nous parlons, l'utilisateur a-t-il les droits
nécessaires pour effectuer l'opération?

Merci pour votre aide.


De rien
Emmanuel
Avatar
Manuel Pavy
Mes deux bases sont deux instances du meme serveur.
J utilise effectivement deux connexions car dans mes parametres de connexion, je
précise quelle base est utilisée:
dans la description des fichiers de la table 1 (de l analyse), les trois ptits
points (bouton à côté de la combo) précisant la connexion :
nom : connexionbase1
source de donnée : mon_serveur
base de donnée : bd1
utilisateur : user

et pour la table 2 :
nom : connexionbase2
source de donnée : mon_serveur
base de donnée : bd2
utilisateur : user

Mon pb ne vient pas de MySQL du fait que cette requete fonctionne très bien
depuis mon client MySQL depuis l environnement de dev en mode test (droit = ok,
requete = ok, les deux connexions = ok).


Manu


Manu a écrit :

> Et auparavant, les deux tables etaient sous la meme base et cela
> marchait tres bien.

Quand vous parlez de base vous parlez de schéma dans une instance MySQL ?
Pourqoi cette question ? voir juste en dessous

> J ai effacé la table2 de la premiere base (dans l analyse) et je l ai
> rajoutée par la connexion de la base 2.

Si votre table est sur le même serveur pourquoi ouvrir une seconde connexion
?

> Si je lie des données d'une fenetre à une requete qui utilise la base
> 1 et d'autres données à une autre requete qui utilise la base 2, je n
> ai aucun pb. C est lorsque je fais une jointure entre ces 2 tables
> que ca coince.

Si vous avez 2 bases sur 2 postes différents et que vous tentez de faire des
jointure entre elles je comprends votre difficulté.

Si c'est de 2 schémas que nous parlons, l'utilisateur a-t-il les droits
nécessaires pour effectuer l'opération?

> Merci pour votre aide.
De rien
Emmanuel


Avatar
ted
Manuel Pavy écrivait
news::

Mes deux bases sont deux instances du meme serveur.
J utilise effectivement deux connexions car dans mes parametres de
connexion, je précise quelle base est utilisée:
dans la description des fichiers de la table 1 (de l analyse), les
trois ptits points (bouton à côté de la combo) précisant la connexion
: nom : connexionbase1
source de donnée : mon_serveur
base de donnée : bd1
utilisateur : user

et pour la table 2 :
nom : connexionbase2
source de donnée : mon_serveur
base de donnée : bd2
utilisateur : user

Mon pb ne vient pas de MySQL du fait que cette requete fonctionne très
bien depuis mon client MySQL depuis l environnement de dev en mode
test (droit = ok, requete = ok, les deux connexions = ok).


Manu


Manu a écrit :

> Et auparavant, les deux tables etaient sous la meme base et cela
> marchait tres bien.

Quand vous parlez de base vous parlez de schéma dans une instance
MySQL ? Pourqoi cette question ? voir juste en dessous

> J ai effacé la table2 de la premiere base (dans l analyse) et je l
> ai rajoutée par la connexion de la base 2.

Si votre table est sur le même serveur pourquoi ouvrir une seconde
connexion ?

> Si je lie des données d'une fenetre à une requete qui utilise la
> base 1 et d'autres données à une autre requete qui utilise la base
> 2, je n ai aucun pb. C est lorsque je fais une jointure entre ces 2
> tables que ca coince.

Si vous avez 2 bases sur 2 postes différents et que vous tentez de
faire des jointure entre elles je comprends votre difficulté.

Si c'est de 2 schémas que nous parlons, l'utilisateur a-t-il les
droits nécessaires pour effectuer l'opération?

> Merci pour votre aide.
De rien
Emmanuel






Donc tu as une requête qui fonctionne en test et pas en exe c'est ça ?
Tu indiques que tu lis tes paramètres (fichier ini ou qlq chose comme
ça).
Fais afficher ces paramètres dans une trace ou dans un log afin de
vérifier que tu lis bien les mêmes infos dans les deux cas.