Source for file oci.daobuilder.php

Documentation is available at oci.daobuilder.php

  1. <?php
  2. /**
  3. @package    jelix
  4. @subpackage db_driver
  5. @author     Laurent Jouanneau
  6. @contributor Gwendal Jouannic
  7. @copyright  2007-2009 Laurent Jouanneau
  8. @link      http://www.jelix.org
  9. @licence  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file
  10. */
  11.  
  12. /**
  13.  * driver for jDaoCompiler
  14.  * @package    jelix
  15.  * @subpackage db_driver
  16.  */
  17. class ociDaoBuilder extends jDaoGenerator {
  18.  
  19.     protected $aliasWord = ' ';
  20.     protected $propertiesListForInsert = 'PrimaryFieldsExcludeAutoIncrement';
  21.  
  22.     protected function buildOuterJoins(&$tables$primaryTableName){
  23.         $sqlFrom '';
  24.         $sqlWhere ='';
  25.         foreach($this->_dataParser->getOuterJoins(as $tablejoin){
  26.             $table$tables[$tablejoin[0]];
  27.             $tablename $this->_encloseName($table['name']);
  28.  
  29.             $r $this->_encloseName($table['realname']).' '.$tablename;
  30.  
  31.             $fieldjoin='';
  32.  
  33.             if($tablejoin[1== 0){
  34.                 $operand='='$opafter='(+)';
  35.             }elseif($tablejoin[1== 1){
  36.                 $operand='(+)='$opafter='';
  37.             }
  38.             foreach($table['fk'as $k => $fk){
  39.                 $fieldjoin.=' AND '.$primaryTableName.'.'.$this->_encloseName($fk).$operand.$tablename.'.'.$this->_encloseName($table['pk'][$k]).$opafter;
  40.             }
  41.             $sqlFrom.=', '.$r;
  42.             $sqlWhere.=$fieldjoin;
  43.         }
  44.         return array($sqlFrom$sqlWhere);
  45.     }
  46.  
  47.     protected function buildSelectPattern ($pattern$table$fieldname$propname ){
  48.         if ($pattern =='%s'){
  49.             if ($fieldname != $propname){
  50.                 $field $table.$this->_encloseName($fieldname).' "'.$propname.'"';
  51.             }else{
  52.                 $field $table.$this->_encloseName($fieldname);
  53.             }
  54.         }else{
  55.             $field str_replace(array("'""%s")array("\\'",$table.$this->_encloseName($fieldname)),$pattern).' "'.$propname.'"';
  56.         }
  57.         return $field;
  58.     }
  59.  
  60.     /*
  61.      * Remplace le lastInsertId qui ne marche pas avec oci 
  62.      */
  63.     protected function buildUpdateAutoIncrementPK($pkai{
  64.         return '          $record->'.$pkai->name.'= $this->_conn->query(\'SELECT '.$pkai->sequenceName.'.currval as '.$pkai->name.' from dual\')->fetch()->'.$pkai->name.';';
  65.     }
  66.  
  67. }

Documentation generated on Mon, 19 Sep 2011 14:14:05 +0200 by phpDocumentor 1.4.3