[ Index ]
 

Code source de eGroupWare 1.2.106-2

Accédez au Source d'autres logiciels libresSoutenez Angelica Josefina !

title

Body

[fermer]

/phpgwapi/inc/adodb/drivers/ -> adodb-pdo_oci.inc.php (source)

   1  <?php
   2  
   3  
   4  /*
   5  V4.65 22 July 2005  (c) 2000-2005 John Lim (jlim@natsoft.com.my). All rights reserved.
   6    Released under both BSD license and Lesser GPL library license. 
   7    Whenever there is any discrepancy between the two licenses, 
   8    the BSD license will take precedence.
   9    Set tabs to 8.
  10   
  11  */ 
  12  
  13  class ADODB_pdo_oci extends ADODB_pdo_base {
  14  
  15      var $concat_operator='||';
  16      var $sysDate = "TRUNC(SYSDATE)";
  17      var $sysTimeStamp = 'SYSDATE';
  18      var $NLS_DATE_FORMAT = 'YYYY-MM-DD';  // To include time, use 'RRRR-MM-DD HH24:MI:SS'
  19      var $random = "abs(mod(DBMS_RANDOM.RANDOM,10000001)/10000000)";
  20      var $metaTablesSQL = "select table_name,table_type from cat where table_type in ('TABLE','VIEW')";
  21      var $metaColumnsSQL = "select cname,coltype,width, SCALE, PRECISION, NULLS, DEFAULTVAL from col where tname='%s' order by colno"; 
  22          
  23       var $_initdate = true;
  24      
  25  	function _init($parentDriver)
  26      {
  27          $parentDriver->_bindInputArray = false;
  28          
  29          if ($this->_initdate) {
  30              $parentDriver->Execute("ALTER SESSION SET NLS_DATE_FORMAT='".$this->NLS_DATE_FORMAT."'");
  31          }
  32      }
  33      
  34      function &MetaTables($ttype=false,$showSchema=false,$mask=false) 
  35      {
  36          if ($mask) {
  37              $save = $this->metaTablesSQL;
  38              $mask = $this->qstr(strtoupper($mask));
  39              $this->metaTablesSQL .= " AND table_name like $mask";
  40          }
  41          $ret =& ADOConnection::MetaTables($ttype,$showSchema);
  42          
  43          if ($mask) {
  44              $this->metaTablesSQL = $save;
  45          }
  46          return $ret;
  47      }
  48      
  49      function &MetaColumns($table) 
  50      {
  51      global $ADODB_FETCH_MODE;
  52      
  53          $false = false;
  54          $save = $ADODB_FETCH_MODE;
  55          $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
  56          if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false);
  57          
  58          $rs = $this->Execute(sprintf($this->metaColumnsSQL,strtoupper($table)));
  59          
  60          if (isset($savem)) $this->SetFetchMode($savem);
  61          $ADODB_FETCH_MODE = $save;
  62          if (!$rs) {
  63              return $false;
  64          }
  65          $retarr = array();
  66          while (!$rs->EOF) { //print_r($rs->fields);
  67              $fld = new ADOFieldObject();
  68                 $fld->name = $rs->fields[0];
  69                 $fld->type = $rs->fields[1];
  70                 $fld->max_length = $rs->fields[2];
  71              $fld->scale = $rs->fields[3];
  72              if ($rs->fields[1] == 'NUMBER' && $rs->fields[3] == 0) {
  73                  $fld->type ='INT';
  74                   $fld->max_length = $rs->fields[4];
  75              }    
  76                 $fld->not_null = (strncmp($rs->fields[5], 'NOT',3) === 0);
  77              $fld->binary = (strpos($fld->type,'BLOB') !== false);
  78              $fld->default_value = $rs->fields[6];
  79              
  80              if ($ADODB_FETCH_MODE == ADODB_FETCH_NUM) $retarr[] = $fld;    
  81              else $retarr[strtoupper($fld->name)] = $fld;
  82              $rs->MoveNext();
  83          }
  84          $rs->Close();
  85          if (empty($retarr))
  86              return  $false;
  87          else 
  88              return $retarr;
  89      }
  90  }
  91  
  92  ?>


Généré le : Sun Feb 25 17:20:01 2007 par Balluche grâce à PHPXref 0.7