Changeset 992

Show
Ignore:
Timestamp:
06/15/08 16:02:11 (6 months ago)
Author:
bastnic
Message:

oracle support with PDO-OCI,p=Gwendal Jouannic

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/1.0.x/build/manifests/jelix-lib.mn

    r829 r992  
    393393cd lib/jelix/plugins/db/oci 
    394394  oci.daobuilder.php 
     395  oci.dbtools.php 
    395396 
    396397cd lib/jelix/plugins/tpl/common 
  • branches/1.0.x/build/manifests/jelix-lib.mn

    r829 r992  
    393393cd lib/jelix/plugins/db/oci 
    394394  oci.daobuilder.php 
     395  oci.dbtools.php 
    395396 
    396397cd lib/jelix/plugins/tpl/common 
  • branches/1.0.x/build/manifests/jelix-lib.mn

    r829 r992  
    393393cd lib/jelix/plugins/db/oci 
    394394  oci.daobuilder.php 
     395  oci.dbtools.php 
    395396 
    396397cd lib/jelix/plugins/tpl/common 
  • branches/1.0.x/build/manifests/jelix-lib.mn

    r829 r992  
    393393cd lib/jelix/plugins/db/oci 
    394394  oci.daobuilder.php 
     395  oci.dbtools.php 
    395396 
    396397cd lib/jelix/plugins/tpl/common 
  • branches/1.0.x/lib/jelix-scripts/commands/createdao.cmd.php

    r923 r992  
    44* @author      Jouanneau Laurent 
    55* @contributor Nicolas Jeudy (patch ticket #99) 
     6* @contributor Gwendal Jouannic (patch ticket #615) 
    67* @copyright   2005-2007 Jouanneau laurent 
     8* @copyright   2007 Nicolas Jeudy, 2008 Gwendal Jouannic 
    79* @link        http://www.jelix.org 
    810* @licence     GNU General Public Licence see LICENCE file or http://www.gnu.org/licenses/gpl.html 
     
    7476            switch($prop->type){ 
    7577 
     78               case 'clob':  
    7679               case 'text': 
    7780               case 'mediumtext': 
     
    8083                  $type='text'; 
    8184                  break; 
     85               case 'varchar2': 
    8286               case 'varchar': 
    8387               case 'char': 
     
    8791                  $type='string'; 
    8892                  break; 
     93               case 'number': 
    8994               case 'tinyint': 
    9095               case 'int': 
     
    149154                    $properties.=' maxlength="'.$prop->length.'"'; 
    150155               } 
     156               if ($prop->sequence) { 
     157                    $properties.=' sequence="'.$prop->sequence.'"'; 
     158               } 
    151159               $properties.='/>'; 
    152160            } 
  • branches/1.0.x/lib/jelix-scripts/commands/createdao.cmd.php

    r923 r992  
    44* @author      Jouanneau Laurent 
    55* @contributor Nicolas Jeudy (patch ticket #99) 
     6* @contributor Gwendal Jouannic (patch ticket #615) 
    67* @copyright   2005-2007 Jouanneau laurent 
     8* @copyright   2007 Nicolas Jeudy, 2008 Gwendal Jouannic 
    79* @link        http://www.jelix.org 
    810* @licence     GNU General Public Licence see LICENCE file or http://www.gnu.org/licenses/gpl.html 
     
    7476            switch($prop->type){ 
    7577 
     78               case 'clob':  
    7679               case 'text': 
    7780               case 'mediumtext': 
     
    8083                  $type='text'; 
    8184                  break; 
     85               case 'varchar2': 
    8286               case 'varchar': 
    8387               case 'char': 
     
    8791                  $type='string'; 
    8892                  break; 
     93               case 'number': 
    8994               case 'tinyint': 
    9095               case 'int': 
     
    149154                    $properties.=' maxlength="'.$prop->length.'"'; 
    150155               } 
     156               if ($prop->sequence) { 
     157                    $properties.=' sequence="'.$prop->sequence.'"'; 
     158               } 
    151159               $properties.='/>'; 
    152160            } 
  • branches/1.0.x/lib/jelix-scripts/commands/createdao.cmd.php

    r923 r992  
    44* @author      Jouanneau Laurent 
    55* @contributor Nicolas Jeudy (patch ticket #99) 
     6* @contributor Gwendal Jouannic (patch ticket #615) 
    67* @copyright   2005-2007 Jouanneau laurent 
     8* @copyright   2007 Nicolas Jeudy, 2008 Gwendal Jouannic 
    79* @link        http://www.jelix.org 
    810* @licence     GNU General Public Licence see LICENCE file or http://www.gnu.org/licenses/gpl.html 
     
    7476            switch($prop->type){ 
    7577 
     78               case 'clob':  
    7679               case 'text': 
    7780               case 'mediumtext': 
     
    8083                  $type='text'; 
    8184                  break; 
     85               case 'varchar2': 
    8286               case 'varchar': 
    8387               case 'char': 
     
    8791                  $type='string'; 
    8892                  break; 
     93               case 'number': 
    8994               case 'tinyint': 
    9095               case 'int': 
     
    149154                    $properties.=' maxlength="'.$prop->length.'"'; 
    150155               } 
     156               if ($prop->sequence) { 
     157                    $properties.=' sequence="'.$prop->sequence.'"'; 
     158               } 
    151159               $properties.='/>'; 
    152160            } 
  • branches/1.0.x/lib/jelix-scripts/commands/createdao.cmd.php

    r923 r992  
    44* @author      Jouanneau Laurent 
    55* @contributor Nicolas Jeudy (patch ticket #99) 
     6* @contributor Gwendal Jouannic (patch ticket #615) 
    67* @copyright   2005-2007 Jouanneau laurent 
     8* @copyright   2007 Nicolas Jeudy, 2008 Gwendal Jouannic 
    79* @link        http://www.jelix.org 
    810* @licence     GNU General Public Licence see LICENCE file or http://www.gnu.org/licenses/gpl.html 
     
    7476            switch($prop->type){ 
    7577 
     78               case 'clob':  
    7679               case 'text': 
    7780               case 'mediumtext': 
     
    8083                  $type='text'; 
    8184                  break; 
     85               case 'varchar2': 
    8286               case 'varchar': 
    8387               case 'char': 
     
    8791                  $type='string'; 
    8892                  break; 
     93               case 'number': 
    8994               case 'tinyint': 
    9095               case 'int': 
     
    149154                    $properties.=' maxlength="'.$prop->length.'"'; 
    150155               } 
     156               if ($prop->sequence) { 
     157                    $properties.=' sequence="'.$prop->sequence.'"'; 
     158               } 
    151159               $properties.='/>'; 
    152160            } 
  • branches/1.0.x/lib/jelix/CREDITS

    r988 r992  
    8888 - jResponseCss 
    8989 
     90Gwendal Jouannic (aka obewan) 
     91 - oracle support with PDO-OCI (#615) 
     92 
    9093Nicolas Lassalle 
    9194 - bug fix in jResponseBinary (#188) 
  • branches/1.0.x/lib/jelix/CREDITS

    r988 r992  
    8888 - jResponseCss 
    8989 
     90Gwendal Jouannic (aka obewan) 
     91 - oracle support with PDO-OCI (#615) 
     92 
    9093Nicolas Lassalle 
    9194 - bug fix in jResponseBinary (#188) 
  • branches/1.0.x/lib/jelix/CREDITS

    r988 r992  
    8888 - jResponseCss 
    8989 
     90Gwendal Jouannic (aka obewan) 
     91 - oracle support with PDO-OCI (#615) 
     92 
    9093Nicolas Lassalle 
    9194 - bug fix in jResponseBinary (#188) 
  • branches/1.0.x/lib/jelix/CREDITS

    r988 r992  
    8888 - jResponseCss 
    8989 
     90Gwendal Jouannic (aka obewan) 
     91 - oracle support with PDO-OCI (#615) 
     92 
    9093Nicolas Lassalle 
    9194 - bug fix in jResponseBinary (#188) 
  • branches/1.0.x/lib/jelix/db/jDbPDOConnection.class.php

    r721 r992  
    44* @subpackage db 
    55* @author     Laurent Jouanneau 
    6 * @contributor 
     6* @contributor Gwendal Jouannic 
    77* @copyright  2005-2006 Laurent Jouanneau 
     8* @copyright  2008 Gwendal Jouannic 
    89* @link      http://www.jelix.org 
    910* @licence  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file 
     
    7576    const JPDO_ERRMODE_EXCEPTION = 2; // PDO::ERRMODE_EXCEPTION 
    7677    const JPDO_MYSQL_ATTR_USE_BUFFERED_QUERY = 1000; // PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 
     78    const JPDO_ATTR_CASE = 8; // PDO::ATTR_CASE 
     79    const JPDO_CASE_LOWER = 2; // PDO::CASE_LOWER 
    7780 
    7881    private $_mysqlCharsets =array( 'UTF-8'=>'utf8', 'ISO-8859-1'=>'latin1'); 
     
    117120            $this->setAttribute(self::JPDO_MYSQL_ATTR_USE_BUFFERED_QUERY, true); 
    118121     
     122        // Oracle renvoie les noms de colonnes en majuscules, il faut donc forcer la casse en minuscules 
     123        if ($this->dbms == 'oci') 
     124            $this->setAttribute(self::JPDO_ATTR_CASE, self::JPDO_CASE_LOWER);             
     125             
    119126        if(isset($prof['force_encoding']) && $prof['force_encoding']==true){ 
    120127            if($this->dbms == 'mysql' && isset($this->_mysqlCharsets[$GLOBALS['gJConfig']->charset])){ 
  • branches/1.0.x/lib/jelix/db/jDbPDOConnection.class.php

    r721 r992  
    44* @subpackage db 
    55* @author     Laurent Jouanneau 
    6 * @contributor 
     6* @contributor Gwendal Jouannic 
    77* @copyright  2005-2006 Laurent Jouanneau 
     8* @copyright  2008 Gwendal Jouannic 
    89* @link      http://www.jelix.org 
    910* @licence  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file 
     
    7576    const JPDO_ERRMODE_EXCEPTION = 2; // PDO::ERRMODE_EXCEPTION 
    7677    const JPDO_MYSQL_ATTR_USE_BUFFERED_QUERY = 1000; // PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 
     78    const JPDO_ATTR_CASE = 8; // PDO::ATTR_CASE 
     79    const JPDO_CASE_LOWER = 2; // PDO::CASE_LOWER 
    7780 
    7881    private $_mysqlCharsets =array( 'UTF-8'=>'utf8', 'ISO-8859-1'=>'latin1'); 
     
    117120            $this->setAttribute(self::JPDO_MYSQL_ATTR_USE_BUFFERED_QUERY, true); 
    118121     
     122        // Oracle renvoie les noms de colonnes en majuscules, il faut donc forcer la casse en minuscules 
     123        if ($this->dbms == 'oci') 
     124            $this->setAttribute(self::JPDO_ATTR_CASE, self::JPDO_CASE_LOWER);             
     125             
    119126        if(isset($prof['force_encoding']) && $prof['force_encoding']==true){ 
    120127            if($this->dbms == 'mysql' && isset($this->_mysqlCharsets[$GLOBALS['gJConfig']->charset])){ 
  • branches/1.0.x/lib/jelix/db/jDbPDOConnection.class.php

    r721 r992  
    44* @subpackage db 
    55* @author     Laurent Jouanneau 
    6 * @contributor 
     6* @contributor Gwendal Jouannic 
    77* @copyright  2005-2006 Laurent Jouanneau 
     8* @copyright  2008 Gwendal Jouannic 
    89* @link      http://www.jelix.org 
    910* @licence  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file 
     
    7576    const JPDO_ERRMODE_EXCEPTION = 2; // PDO::ERRMODE_EXCEPTION 
    7677    const JPDO_MYSQL_ATTR_USE_BUFFERED_QUERY = 1000; // PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 
     78    const JPDO_ATTR_CASE = 8; // PDO::ATTR_CASE 
     79    const JPDO_CASE_LOWER = 2; // PDO::CASE_LOWER 
    7780 
    7881    private $_mysqlCharsets =array( 'UTF-8'=>'utf8', 'ISO-8859-1'=>'latin1'); 
     
    117120            $this->setAttribute(self::JPDO_MYSQL_ATTR_USE_BUFFERED_QUERY, true); 
    118121     
     122        // Oracle renvoie les noms de colonnes en majuscules, il faut donc forcer la casse en minuscules 
     123        if ($this->dbms == 'oci') 
     124            $this->setAttribute(self::JPDO_ATTR_CASE, self::JPDO_CASE_LOWER);             
     125             
    119126        if(isset($prof['force_encoding']) && $prof['force_encoding']==true){ 
    120127            if($this->dbms == 'mysql' && isset($this->_mysqlCharsets[$GLOBALS['gJConfig']->charset])){ 
  • branches/1.0.x/lib/jelix/db/jDbPDOConnection.class.php

    r721 r992  
    44* @subpackage db 
    55* @author     Laurent Jouanneau 
    6 * @contributor 
     6* @contributor Gwendal Jouannic 
    77* @copyright  2005-2006 Laurent Jouanneau 
     8* @copyright  2008 Gwendal Jouannic 
    89* @link      http://www.jelix.org 
    910* @licence  http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public Licence, see LICENCE file 
     
    7576    const JPDO_ERRMODE_EXCEPTION = 2; // PDO::ERRMODE_EXCEPTION 
    7677    const JPDO_MYSQL_ATTR_USE_BUFFERED_QUERY = 1000; // PDO::MYSQL_ATTR_USE_BUFFERED_QUERY 
     78    const JPDO_ATTR_CASE = 8; // PDO::ATTR_CASE 
     79    const JPDO_CASE_LOWER = 2; // PDO::CASE_LOWER 
    7780 
    7881    private $_mysqlCharsets =array( 'UTF-8'=>'utf8', 'ISO-8859-1'=>'latin1'); 
     
    117120            $this->setAttribute(self::JPDO_MYSQL_ATTR_USE_BUFFERED_QUERY, true); 
    118121     
     122        // Oracle renvoie les noms de colonnes en majuscules, il faut donc forcer la casse en minuscules 
     123        if ($this->dbms == 'oci') 
     124            $this->setAttribute(self::JPDO_ATTR_CASE, self::JPDO_CASE_LOWER);             
     125             
    119126        if(isset($prof['force_encoding']) && $prof['force_encoding']==true){ 
    120127            if($this->dbms == 'mysql' && isset($this->_mysqlCharsets[$GLOBALS['gJConfig']->charset])){ 
  • branches/1.0.x/lib/jelix/db/jDbTools.class.php

    r699 r992  
    44* @subpackage db 
    55* @author     Croes Gérald, Laurent Jouanneau 
    6 * @contributor Laurent Jouanneau 
     6* @contributor Laurent Jouanneau, Gwendal Jouannic 
    77* @copyright  2001-2005 CopixTeam, 2005-2006 Laurent Jouanneau 
     8* @copyright  2008 Gwendal Jouannic 
    89* 
    910* This class was get originally from the Copix project (CopixDbTools, CopixDbConnection, Copix 2.3dev20050901, http://www.copix.org) 
     
    6566 
    6667    public $length = 0; 
     68     
     69     /** 
     70     * if there is a sequence 
     71     * @var string 
     72     */ 
     73    public $sequence = false; 
    6774} 
    6875 
  • branches/1.0.x/lib/jelix/db/jDbTools.class.php

    r699 r992  
    44* @subpackage db 
    55* @author     Croes Gérald, Laurent Jouanneau 
    6 * @contributor Laurent Jouanneau 
     6* @contributor Laurent Jouanneau, Gwendal Jouannic 
    77* @copyright  2001-2005 CopixTeam, 2005-2006 Laurent Jouanneau 
     8* @copyright  2008 Gwendal Jouannic 
    89* 
    910* This class was get originally from the Copix project (CopixDbTools, CopixDbConnection, Copix 2.3dev20050901, http://www.copix.org) 
     
    6566 
    6667    public $length = 0; 
     68     
     69     /** 
     70     * if there is a sequence 
     71     * @var string 
     72     */ 
     73    public $sequence = false; 
    6774} 
    6875 
  • branches/1.0.x/lib/jelix/db/jDbTools.class.php

    r699 r992  
    44* @subpackage db 
    55* @author     Croes Gérald, Laurent Jouanneau 
    6 * @contributor Laurent Jouanneau 
     6* @contributor Laurent Jouanneau, Gwendal Jouannic 
    77* @copyright  2001-2005 CopixTeam, 2005-2006 Laurent Jouanneau 
     8* @copyright  2008 Gwendal Jouannic 
    89* 
    910* This class was get originally from the Copix project (CopixDbTools, CopixDbConnection, Copix 2.3dev20050901, http://www.copix.org) 
     
    6566 
    6667    public $length = 0; 
     68     
     69     /** 
     70     * if there is a sequence 
     71     * @var string 
     72     */ 
     73    public $sequence = false; 
    6774} 
    6875 
  • branches/1.0.x/lib/jelix/db/jDbTools.class.php

    r699 r992  
    44* @subpackage db 
    55* @author     Croes Gérald, Laurent Jouanneau 
    6 * @contributor Laurent Jouanneau 
     6* @contributor Laurent Jouanneau, Gwendal Jouannic 
    77* @copyright  2001-2005 CopixTeam, 2005-2006 Laurent Jouanneau 
     8* @copyright  2008 Gwendal Jouannic 
    89* 
    910* This class was get originally from the Copix project (CopixDbTools, CopixDbConnection, Copix 2.3dev20050901, http://www.copix.org) 
     
    6566 
    6667    public $length = 0; 
     68     
     69     /** 
     70     * if there is a sequence 
     71     * @var string 
     72     */ 
     73    public $sequence = false; 
    6774} 
    6875 
  • branches/1.0.x/lib/jelix/plugins/db/oci/oci.daobuilder.php

    r631 r992  
    44* @subpackage db_driver 
    55* @author     Laurent Jouanneau 
    6 * @contributor 
     6* @contributor Gwendal Jouannic 
    77* @copyright  2007 Laurent Jouanneau 
    88* @link      http://www.jelix.org 
     
    6363        return $field; 
    6464    } 
     65     
     66    /* 
     67     * Remplace le lastInsertId qui ne marche pas avec oci  
     68     */ 
     69    protected function genUpdateAutoIncrementPK($pkai, $pTableRealName) { 
     70        return '          $record->'.$pkai->name.'= $this->_conn->query(\'SELECT '.$pkai->sequenceName.'.currval as '.$pkai->name.' from dual\')->fetch()->'.$pkai->name.';'; 
     71    } 
     72     
    6573 
    6674} 
  • branches/1.0.x/lib/jelix/plugins/db/oci/oci.daobuilder.php

    r631 r992  
    44* @subpackage db_driver 
    55* @author     Laurent Jouanneau 
    6 * @contributor 
     6* @contributor Gwendal Jouannic 
    77* @copyright  2007 Laurent Jouanneau 
    88* @link      http://www.jelix.org 
     
    6363        return $field; 
    6464    } 
     65     
     66    /* 
     67     * Remplace le lastInsertId qui ne marche pas avec oci  
     68     */ 
     69    protected function genUpdateAutoIncrementPK($pkai, $pTableRealName) { 
     70        return '          $record->'.$pkai->name.'= $this->_conn->query(\'SELECT '.$pkai->sequenceName.'.currval as '.$pkai->name.' from dual\')->fetch()->'.$pkai->name.';'; 
     71    } 
     72     
    6573 
    6674} 
  • branches/1.0.x/lib/jelix/plugins/db/oci/oci.daobuilder.php

    r631 r992  
    44* @subpackage db_driver 
    55* @author     Laurent Jouanneau 
    6 * @contributor 
     6* @contributor Gwendal Jouannic 
    77* @copyright  2007 Laurent Jouanneau 
    88* @link      http://www.jelix.org 
     
    6363        return $field; 
    6464    } 
     65     
     66    /* 
     67     * Remplace le lastInsertId qui ne marche pas avec oci  
     68     */ 
     69    protected function genUpdateAutoIncrementPK($pkai, $pTableRealName) { 
     70        return '          $record->'.$pkai->name.'= $this->_conn->query(\'SELECT '.$pkai->sequenceName.'.currval as '.$pkai->name.' from dual\')->fetch()->'.$pkai->name.';'; 
     71    } 
     72     
    6573 
    6674} 
  • branches/1.0.x/lib/jelix/plugins/db/oci/oci.daobuilder.php

    r631 r992  
    44* @subpackage db_driver 
    55* @author     Laurent Jouanneau 
    6 * @contributor 
     6* @contributor Gwendal Jouannic 
    77* @copyright  2007 Laurent Jouanneau 
    88* @link      http://www.jelix.org 
     
    6363        return $field; 
    6464    } 
     65     
     66    /* 
     67     * Remplace le lastInsertId qui ne marche pas avec oci  
     68     */ 
     69    protected function genUpdateAutoIncrementPK($pkai, $pTableRealName) { 
     70        return '          $record->'.$pkai->name.'= $this->_conn->query(\'SELECT '.$pkai->sequenceName.'.currval as '.$pkai->name.' from dual\')->fetch()->'.$pkai->name.';'; 
     71    } 
     72     
    6573 
    6674} 
Download in other formats: Unified Diff Zip Archive