- 1
[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
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...
- 1