phpgroupware-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Phpgroupware-cvs] phpgwapi/inc/adodb/datadict/datadict-sapdb.inc.php,


From: nomail
Subject: [Phpgroupware-cvs] phpgwapi/inc/adodb/datadict/datadict-sapdb.inc.php, 1.1.2.1
Date: Thu, 30 Dec 2004 05:51:48 +0100

Update of /phpgwapi/inc/adodb/datadict
Added Files:
        Branch: proposed-0_9_18-branch
          datadict-sapdb.inc.php

date: 2004/12/30 04:51:48;  author: skwashd;  state: Exp;  lines: +121 -0

Log Message:
switch to ADOdb
=====================================================================
<?php

/**
  V4.50 6 July 2004  (c) 2000-2004 John Lim (address@hidden). All rights 
reserved.
  Released under both BSD license and Lesser GPL library license. 
  Whenever there is any discrepancy between the two licenses, 
  the BSD license will take precedence.
        
  Set tabs to 4 for best viewing.
  
  Modified from datadict-generic.inc.php for sapdb by 
RalfBecker-AT-outdoor-training.de
*/

// security - hide paths
if (!defined('ADODB_DIR')) die();

class ADODB2_sapdb extends ADODB_DataDict {
        
        var $databaseType = 'sapdb';
        var $seqField = false;  
        var $renameColumn = 'RENAME COLUMN %s.%s TO %s';
        
        function ActualType($meta)
        {
                switch($meta) {
                case 'C': return 'VARCHAR';
                case 'XL':
                case 'X': return 'LONG';
                
                case 'C2': return 'VARCHAR UNICODE';
                case 'X2': return 'LONG UNICODE';
                
                case 'B': return 'LONG';
                        
                case 'D': return 'DATE';
                case 'T': return 'TIMESTAMP';
                
                case 'L': return 'BOOLEAN';
                case 'I': return 'INTEGER';
                case 'I1': return 'FIXED(3)';
                case 'I2': return 'SMALLINT';
                case 'I4': return 'INTEGER';
                case 'I8': return 'FIXED(20)';
                
                case 'F': return 'FLOAT(38)';
                case 'N': return 'FIXED';
                default:
                        return $meta;
                }
        }
        
        function MetaType($t,$len=-1,$fieldobj=false)
        {
                if (is_object($t)) {
                        $fieldobj = $t;
                        $t = $fieldobj->type;
                        $len = $fieldobj->max_length;
                }
                static $maxdb_type2adodb = array(
                        'VARCHAR'       => 'C',
                        'CHARACTER'     => 'C',
                        'LONG'          => 'X',         // no way to differ 
between 'X' and 'B' :-(
                        'DATE'          => 'D',
                        'TIMESTAMP'     => 'T',
                        'BOOLEAN'       => 'L',
                        'INTEGER'       => 'I4',
                        'SMALLINT'      => 'I2',
                        'FLOAT'         => 'F',
                        'FIXED'         => 'N',
                );
                $type = isset($maxdb_type2adodb[$t]) ? $maxdb_type2adodb[$t] : 
'C';

                // convert integer-types simulated with fixed back to integer
                if ($t == 'FIXED' && !$fieldobj->scale && ($len == 20 || $len 
== 3)) {
                        $type = $len == 20 ? 'I8' : 'I1';
                }
                if ($fieldobj->auto_increment) $type = 'R';

                return $type;
        }
        
        // return string must begin with space
        function 
_CreateSuffix($fname,$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned)
        {       
                $suffix = '';
                if ($funsigned) $suffix .= ' UNSIGNED';
                if ($fnotnull) $suffix .= ' NOT NULL';
                if ($fautoinc) $suffix .= ' DEFAULT SERIAL';
                elseif (strlen($fdefault)) $suffix .= " DEFAULT $fdefault";
                if ($fconstraint) $suffix .= ' '.$fconstraint;
                return $suffix;
        }

        function AddColumnSQL($tabname, $flds)
        {
                $tabname = $this->TableName ($tabname);
                $sql = array();
                list($lines,$pkey) = $this->_GenFields($flds);
                return array( 'ALTER TABLE ' . $tabname . ' ADD (' . implode(', 
',$lines) . ')' );
        }
        
        function AlterColumnSQL($tabname, $flds)
        {
                $tabname = $this->TableName ($tabname);
                $sql = array();
                list($lines,$pkey) = $this->_GenFields($flds);
                return array( 'ALTER TABLE ' . $tabname . ' MODIFY (' . 
implode(', ',$lines) . ')' );
        }

        function DropColumnSQL($tabname, $flds)
        {
                $tabname = $this->TableName ($tabname);
                if (!is_array($flds)) $flds = explode(',',$flds);
                foreach($flds as $k => $v) {
                        $flds[$k] = $this->NameQuote($v);
                }
                return array( 'ALTER TABLE ' . $tabname . ' DROP (' . 
implode(', ',$flds) . ')' );
        }       
}

?>




reply via email to

[Prev in Thread] Current Thread [Next in Thread]