[ Index ]
 

Code source de vtiger CRM 5.0.2

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

title

Body

[fermer]

/adodb/drivers/ -> adodb-sybase_ase.inc.php (source)

   1  <?php
   2  /*
   3    V4.90 8 June 2006  (c) 2000-2006 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  class ADODB_sybase_ase extends ADODB_sybase {
  13       var $databaseType = "sybase_ase";
  14      
  15       var $metaTablesSQL="SELECT sysobjects.name FROM sysobjects, sysusers WHERE sysobjects.type='U' AND sysobjects.uid = sysusers.uid";
  16       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";
  17       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";
  18  
  19  	function ADODB_sybase_ase()
  20      {
  21      }
  22      
  23      // split the Views, Tables and procedures.
  24      function &MetaTables($ttype=false,$showSchema=false,$mask=false)
  25      {
  26          $false = false;
  27          if ($this->metaTablesSQL) {
  28              // complicated state saving by the need for backward compat
  29              
  30              if ($ttype == 'VIEWS'){
  31                          $sql = str_replace('U', 'V', $this->metaTablesSQL);
  32              }elseif (false === $ttype){
  33                          $sql = str_replace('U',"U' OR type='V", $this->metaTablesSQL);
  34              }else{ // TABLES OR ANY OTHER 
  35                          $sql = $this->metaTablesSQL;
  36              }
  37              $rs = $this->Execute($sql);
  38              
  39              if ($rs === false || !method_exists($rs, 'GetArray')){
  40                      return $false;
  41              }
  42              $arr =& $rs->GetArray();
  43  
  44              $arr2 = array();
  45              foreach($arr as $key=>$value){
  46                      $arr2[] = trim($value['name']);
  47              }
  48              return $arr2;
  49          }
  50          return $false;
  51      }
  52  
  53  	function MetaDatabases()
  54      {
  55              $arr = array();
  56              if ($this->metaDatabasesSQL!='') {
  57                  $rs = $this->Execute($this->metaDatabasesSQL);
  58                  if ($rs && !$rs->EOF){
  59                      while (!$rs->EOF){
  60                          $arr[] = $rs->Fields('name');
  61                          $rs->MoveNext();
  62                      }
  63                      return $arr;
  64                  }
  65              }
  66              return false;
  67      }
  68  
  69      // fix a bug which prevent the metaColumns query to be executed for Sybase ASE
  70      function &MetaColumns($table,$upper=false) 
  71      {
  72          $false = false;
  73          if (!empty($this->metaColumnsSQL)) {
  74          
  75              $rs = $this->Execute(sprintf($this->metaColumnsSQL,$table));
  76              if ($rs === false) return $false;
  77  
  78              $retarr = array();
  79              while (!$rs->EOF) {
  80                  $fld =& new ADOFieldObject();
  81                  $fld->name = $rs->Fields('field_name');
  82                  $fld->type = $rs->Fields('type');
  83                  $fld->max_length = $rs->Fields('width');
  84                  $retarr[strtoupper($fld->name)] = $fld;
  85                  $rs->MoveNext();
  86              }
  87              $rs->Close();
  88              return $retarr;    
  89          }
  90          return $false;
  91      }
  92      
  93  	function getProcedureList($schema)
  94      {
  95              return false;
  96      }
  97  
  98  	function ErrorMsg()
  99      {
 100          if (!function_exists('sybase_connect')){
 101                  return 'Your PHP doesn\'t contain the Sybase connection module!';
 102          }
 103          return parent::ErrorMsg();    
 104      }
 105  }
 106  
 107  class adorecordset_sybase_ase extends ADORecordset_sybase {
 108  var $databaseType = "sybase_ase";
 109  function ADORecordset_sybase_ase($id,$mode=false)
 110      {
 111          $this->ADORecordSet_sybase($id,$mode);
 112      }
 113      
 114  }
 115  ?>


Généré le : Sun Feb 25 10:22:19 2007 par Balluche grâce à PHPXref 0.7