Quick links: Content - sections - sub sections
EN FR
Quick Search Advanced search
 
Page

  [Opened] Appel à une table d'une autre base dans un dao

Posted by fred on 04/30/2009 11:50

Bonjour,

Je souhaiterai faire une requête sur des tables de deux bases différentes...

Le contexte :

Une application jelix avec une base de donnée (A) comportant des tables communes à d'autres application jelix qui ont aussi leur propre base de donnée (B)

Pour les "sous" applications j'ai bien 2 db profil pour se connecter à A et à B, j'arrive facilement à faire des requêtes sur l'une et l'autre base au sein de la même application (pour infos les 2 profils utilisent le même user mysql qui a des droits sur les base A et B).

Il y a cependant des clés de la base B qui font référence à un enregistrement de la base A, et dans le Dao d'une table de la base B j'aimerai bien pouvoir utiliser une relation avec un enregistrement d'une table de la base A pour récupérer ces données en une seule requête.

Croyez vous que ça soit possible ?

Merci d'avance

  [Opened] Re: Appel à une table d'une autre base dans un dao

Reply #1 Posted by foxmask on 04/30/2009 13:17

bonjour

il me semble que ce n'est pas possible.

Par contre reste la solution jDb(); si je ne m'abuse.

cdt.


@GitHub - Forum HaveFnuBB! powered by Jelix - Le Booster Jelix !

  [Opened] Re: Appel à une table d'une autre base dans un dao

Reply #2 Posted by fred on 04/30/2009 14:38

Merci pour ta réponse, je viens d'y parvenir en faisant une méthode php dans mon dao, dites moi ci cette façon est "propre" svp :

...

 <datasources>
 <primarytable name="table2" realname="table2" primarykey="id" />
 </datasources>

...

 <factory>
 <method name="specialFind" type="php">
 <body>
 <![CDATA[
 $sql = 'SELECT * FROM B.table2, A.table1 WHERE A.table1.id = B.table2.xx_id';
 $rs = $this->_conn->query($sql);
 $rs->setFetchMode(8,$this->_DaoRecordClassName);
 return $rs;
 ]]></body>
 </method>
 </factory>

Cdt

  [Opened] Re: Appel à une table d'une autre base dans un dao

Reply #3 Posted by laurentj on 04/30/2009 16:41

Salut,

non, ce n'est pas propre, vu que dans ta dao tu ne peux pas définir le mapping vers ta table B.

Je ne sais pas si utiliser un dao dans cette circonstance est une bonne chose.

 
Page
  1. Appel à une table d'une autre base dans un dao