source: trunk/phpgwapi/inc/adodb/datadict/datadict-sapdb.inc.php @ 34

Revision 34, 3.1 KB checked in by niltonneto, 17 years ago (diff)

Versão nova do ADODB (4.5 para 4.95)

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1<?php
2
3/**
4  V4.50 6 July 2004  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
5  Released under both BSD license and Lesser GPL library license.
6  Whenever there is any discrepancy between the two licenses,
7  the BSD license will take precedence.
8       
9  Set tabs to 4 for best viewing.
10 
11  Modified from datadict-generic.inc.php for sapdb by RalfBecker-AT-outdoor-training.de
12*/
13
14// security - hide paths
15if (!defined('ADODB_DIR')) die();
16
17class ADODB2_sapdb extends ADODB_DataDict {
18       
19        var $databaseType = 'sapdb';
20        var $seqField = false; 
21        var $renameColumn = 'RENAME COLUMN %s.%s TO %s';
22       
23        function ActualType($meta)
24        {
25                switch($meta) {
26                case 'C': return 'VARCHAR';
27                case 'XL':
28                case 'X': return 'LONG';
29               
30                case 'C2': return 'VARCHAR UNICODE';
31                case 'X2': return 'LONG UNICODE';
32               
33                case 'B': return 'LONG';
34                       
35                case 'D': return 'DATE';
36                case 'T': return 'TIMESTAMP';
37               
38                case 'L': return 'BOOLEAN';
39                case 'I': return 'INTEGER';
40                case 'I1': return 'FIXED(3)';
41                case 'I2': return 'SMALLINT';
42                case 'I4': return 'INTEGER';
43                case 'I8': return 'FIXED(20)';
44               
45                case 'F': return 'FLOAT(38)';
46                case 'N': return 'FIXED';
47                default:
48                        return $meta;
49                }
50        }
51       
52        function MetaType($t,$len=-1,$fieldobj=false)
53        {
54                if (is_object($t)) {
55                        $fieldobj = $t;
56                        $t = $fieldobj->type;
57                        $len = $fieldobj->max_length;
58                }
59                static $maxdb_type2adodb = array(
60                        'VARCHAR'       => 'C',
61                        'CHARACTER'     => 'C',
62                        'LONG'          => 'X',         // no way to differ between 'X' and 'B' :-(
63                        'DATE'          => 'D',
64                        'TIMESTAMP'     => 'T',
65                        'BOOLEAN'       => 'L',
66                        'INTEGER'       => 'I4',
67                        'SMALLINT'      => 'I2',
68                        'FLOAT'         => 'F',
69                        'FIXED'         => 'N',
70                );
71                $type = isset($maxdb_type2adodb[$t]) ? $maxdb_type2adodb[$t] : 'C';
72
73                // convert integer-types simulated with fixed back to integer
74                if ($t == 'FIXED' && !$fieldobj->scale && ($len == 20 || $len == 3)) {
75                        $type = $len == 20 ? 'I8' : 'I1';
76                }
77                if ($fieldobj->auto_increment) $type = 'R';
78
79                return $type;
80        }
81       
82        // return string must begin with space
83        function _CreateSuffix($fname,$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned)
84        {       
85                $suffix = '';
86                if ($funsigned) $suffix .= ' UNSIGNED';
87                if ($fnotnull) $suffix .= ' NOT NULL';
88                if ($fautoinc) $suffix .= ' DEFAULT SERIAL';
89                elseif (strlen($fdefault)) $suffix .= " DEFAULT $fdefault";
90                if ($fconstraint) $suffix .= ' '.$fconstraint;
91                return $suffix;
92        }
93
94        function AddColumnSQL($tabname, $flds)
95        {
96                $tabname = $this->TableName ($tabname);
97                $sql = array();
98                list($lines,$pkey) = $this->_GenFields($flds);
99                return array( 'ALTER TABLE ' . $tabname . ' ADD (' . implode(', ',$lines) . ')' );
100        }
101       
102        function AlterColumnSQL($tabname, $flds)
103        {
104                $tabname = $this->TableName ($tabname);
105                $sql = array();
106                list($lines,$pkey) = $this->_GenFields($flds);
107                return array( 'ALTER TABLE ' . $tabname . ' MODIFY (' . implode(', ',$lines) . ')' );
108        }
109
110        function DropColumnSQL($tabname, $flds)
111        {
112                $tabname = $this->TableName ($tabname);
113                if (!is_array($flds)) $flds = explode(',',$flds);
114                foreach($flds as $k => $v) {
115                        $flds[$k] = $this->NameQuote($v);
116                }
117                return array( 'ALTER TABLE ' . $tabname . ' DROP (' . implode(', ',$flds) . ')' );
118        }       
119}
120
121?>
Note: See TracBrowser for help on using the repository browser.