| [ Index ] |
|
Code source de eGroupWare 1.2.106-2 |
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 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Sun Feb 25 17:20:01 2007 | par Balluche grâce à PHPXref 0.7 |