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

  [Opened] jDAO et primarykey multiple

Posted by tritem on 03/31/2009 14:14

Bonjour,

Je suis devant le problème suivant : j'ai une table "classe" dans lequel j'ai une clé primaire composé, à savoir idClasse et numVersion. Lorsque je souhaite faire la commande suivante, pour effectuer une mise à jour :

$this->_factory = jDao::get($this->_DAO); $record = $this->_factory->get($idClasse);

Je ne voit pas de fonction permettant de faire un get sur une clé composé. Faut il écrire soit même la requête d'update?

Cdt Sylvain

  [Opened] Re: jDAO et primarykey multiple

Reply #1 Posted by foxmask on 03/31/2009 14:24

Pour faire une requete sur 2 cles, au lieu de

this->_factory->get() (qui va chercher une PK)

on pourrait faire :

this->_factory->getByIdClassNumVersion()

et cette methode dans le DAO permettrait de faire le selectfirst qui va bien.

ensuite il est possible de faire this->_factory->update($data);

où $data sont les données à mettre à jour dans la table.


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

  [Opened] Re: jDAO et primarykey multiple

Reply #2 Posted by laurentj on 03/31/2009 15:35

Hou là là, vous vous cassez le **l pour rien là :-)

  $record = $this->_factory->get(array($idClasse, $idNumVersion));

Ou mieux:

  $record = $this->_factory->get($idClasse, $idNumVersion);

Il faut bien sûr déclarer dans le fichier XML que la clé est composée de deux champs:

  <primarytable ... primarykey="id_class,id_num_version" />
 
Page
  1. Re: jDAO et primarykey multiple