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

  [Opened] Champ calculé et paramétré en JDao

Posted by Obewan on 01/19/2008 20:13

Bonjour

Je voudrais déterminer l'age de mes adhérents au 1 juillet d'une année que je choisis. Je compte donc passer en paramètre '2008-07-01' par exemple à la requête ci-dessous.

SELECT adh_nom, adh_naissance, (YEAR('2008-07-01')- YEAR(adh_naissance)) - (RIGHT('2008-07-01',5)<RIGHT(adh_naissance,5)) FROM adherent

Par contre je ne vois pas comment faire avec JDao même avec des selectpattern car j'ai un paramètre. Le but serait d'avoir un résultat du genre

 <property name="age" selectpattern="YEAR('2008-07-01')- YEAR(adh_naissance)) - (RIGHT('2008-07-01',5)<RIGHT(adh_naissance,5)" insertpattern="" updatepattern="" />

Ni même avec une méthode PHP dans un JDao car du coup j'ai une propriété (le champ calculé) qui me manque dans mes property pour avoir un objet JDao.

 <parameter name="date_cotis" />
 <body><![CDATA[
 $sql = $this->_selectClause. '(YEAR('2008-07-01')- YEAR(adh_naissance)) - (RIGHT('2008-07-01',5)<RIGHT(adh_naissance,5))'. $this->_fromClause.$this->_whereClause;

Bref je pense que je vais passer par JDb. Sinon je pense qu'il faudrait envisager de pouvoir paramétrer les selectpattern pour plus de souplesse dans les champs calculés

  [Opened] Re: Champ calculé et paramétré en JDao

Reply #1 Posted by laurentj on 01/19/2008 22:08

Je pense qu'en faisant une property

  <property name="agecalc" selectpattern="" updatepattern="" insertpattern="" />

et en faisant

 <parameter name="date_cotis" />
 <body><![CDATA[
    $sql = $this->_selectClause. ', (YEAR('2008-07-01')- YEAR(adh_naissance)) - (RIGHT('2008-07-01',5)<RIGHT(adh_naissance,5)) as agecalc'. $this->_fromClause.$this->_whereClause;
    $rs = $this->_conn->query ($sql);
    $rs->setFetchMode(8,$this->_DaoRecordClassName);
    return $rs;
   ]]></body>

Ça devrait le faire...

 
Page
  1. Re: Champ calculé et paramétré en JDao