[ Index ] |
|
Code source de Mantis 1.1.0rc3 |
1 <?php 2 /* 3 V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved. 4 Released under both BSD license and Lesser GPL library license. 5 Whenever there is any discrepancy between the two licenses, 6 the BSD license will take precedence. 7 8 Set tabs to 4. 9 10 Contributed by Interakt Online. Thx Cristian MARIN cristic#interaktonline.com 11 */ 12 13 14 require_once ADODB_DIR."/drivers/adodb-sybase.inc.php"; 15 16 class ADODB_sybase_ase extends ADODB_sybase { 17 var $databaseType = "sybase_ase"; 18 19 var $metaTablesSQL="SELECT sysobjects.name FROM sysobjects, sysusers WHERE sysobjects.type='U' AND sysobjects.uid = sysusers.uid"; 20 var $metaColumnsSQL = "SELECT syscolumns.name AS field_name, systypes.name AS type, systypes.length AS width FROM sysobjects, syscolumns, systypes WHERE sysobjects.name='%s' AND syscolumns.id = sysobjects.id AND systypes.type=syscolumns.type"; 21 var $metaDatabasesSQL ="SELECT a.name FROM master.dbo.sysdatabases a, master.dbo.syslogins b WHERE a.suid = b.suid and a.name like '%' and a.name != 'tempdb' and a.status3 != 256 order by 1"; 22 23 function ADODB_sybase_ase() 24 { 25 } 26 27 // split the Views, Tables and procedures. 28 function &MetaTables($ttype=false,$showSchema=false,$mask=false) 29 { 30 $false = false; 31 if ($this->metaTablesSQL) { 32 // complicated state saving by the need for backward compat 33 34 if ($ttype == 'VIEWS'){ 35 $sql = str_replace('U', 'V', $this->metaTablesSQL); 36 }elseif (false === $ttype){ 37 $sql = str_replace('U',"U' OR type='V", $this->metaTablesSQL); 38 }else{ // TABLES OR ANY OTHER 39 $sql = $this->metaTablesSQL; 40 } 41 $rs = $this->Execute($sql); 42 43 if ($rs === false || !method_exists($rs, 'GetArray')){ 44 return $false; 45 } 46 $arr =& $rs->GetArray(); 47 48 $arr2 = array(); 49 foreach($arr as $key=>$value){ 50 $arr2[] = trim($value['name']); 51 } 52 return $arr2; 53 } 54 return $false; 55 } 56 57 function MetaDatabases() 58 { 59 $arr = array(); 60 if ($this->metaDatabasesSQL!='') { 61 $rs = $this->Execute($this->metaDatabasesSQL); 62 if ($rs && !$rs->EOF){ 63 while (!$rs->EOF){ 64 $arr[] = $rs->Fields('name'); 65 $rs->MoveNext(); 66 } 67 return $arr; 68 } 69 } 70 return false; 71 } 72 73 // fix a bug which prevent the metaColumns query to be executed for Sybase ASE 74 function &MetaColumns($table,$upper=false) 75 { 76 $false = false; 77 if (!empty($this->metaColumnsSQL)) { 78 79 $rs = $this->Execute(sprintf($this->metaColumnsSQL,$table)); 80 if ($rs === false) return $false; 81 82 $retarr = array(); 83 while (!$rs->EOF) { 84 $fld =& new ADOFieldObject(); 85 $fld->name = $rs->Fields('field_name'); 86 $fld->type = $rs->Fields('type'); 87 $fld->max_length = $rs->Fields('width'); 88 $retarr[strtoupper($fld->name)] = $fld; 89 $rs->MoveNext(); 90 } 91 $rs->Close(); 92 return $retarr; 93 } 94 return $false; 95 } 96 97 function getProcedureList($schema) 98 { 99 return false; 100 } 101 102 function ErrorMsg() 103 { 104 if (!function_exists('sybase_connect')){ 105 return 'Your PHP doesn\'t contain the Sybase connection module!'; 106 } 107 return parent::ErrorMsg(); 108 } 109 } 110 111 class adorecordset_sybase_ase extends ADORecordset_sybase { 112 var $databaseType = "sybase_ase"; 113 function ADORecordset_sybase_ase($id,$mode=false) 114 { 115 $this->ADORecordSet_sybase($id,$mode); 116 } 117 118 } 119 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
Généré le : Thu Nov 29 09:42:17 2007 | par Balluche grâce à PHPXref 0.7 |
![]() |