[ Index ]
 

Code source de vtiger CRM 5.0.2

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

title

Body

[fermer]

/adodb/tests/ -> test-datadict.php (source)

   1  <?php
   2  /*
   3  
   4    V4.81 3 May 2006  (c) 2000-2006 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  */
  12  
  13  error_reporting(E_ALL);
  14  include_once ('../adodb.inc.php');
  15  
  16  foreach(array('sapdb','sybase','mysql','access','oci8po','postgres','odbc_mssql','odbc','db2','firebird','informix') as $dbType) {
  17      echo "<h3>$dbType</h3><p>";
  18      $db = NewADOConnection($dbType);
  19      $dict = NewDataDictionary($db);
  20  
  21      if (!$dict) continue;
  22      $dict->debug = 1;
  23      
  24      $opts = array('REPLACE','mysql' => 'ENGINE=INNODB', 'oci8' => 'TABLESPACE USERS');
  25      
  26  /*    $flds = array(
  27          array('id',    'I',                                
  28                              'AUTO','KEY'),
  29                              
  30          array('name' => 'firstname', 'type' => 'varchar','size' => 30,
  31                              'DEFAULT'=>'Joan'),
  32                              
  33          array('lastname','varchar',28,
  34                              'DEFAULT'=>'Chen','key'),
  35                              
  36          array('averylonglongfieldname','X',1024,
  37                              'NOTNULL','default' => 'test'),
  38                              
  39          array('price','N','7.2',
  40                              'NOTNULL','default' => '0.00'),
  41                              
  42          array('MYDATE', 'D', 
  43                              'DEFDATE'),
  44          array('TS','T',
  45                              'DEFTIMESTAMP')
  46      );*/
  47      
  48      $flds = "
  49  ID            I           AUTO KEY,
  50  FIRSTNAME     VARCHAR(30) DEFAULT 'Joan',
  51  LASTNAME      VARCHAR(28) DEFAULT 'Chen' key,
  52  averylonglongfieldname X(1024) DEFAULT 'test',
  53  price         N(7.2)  DEFAULT '0.00',
  54  MYDATE        D      DEFDATE,
  55  BIGFELLOW     X      NOTNULL,
  56  TS            T      DEFTIMESTAMP";
  57  
  58  
  59      $sqla = $dict->CreateDatabase('KUTU',array('postgres'=>"LOCATION='/u01/postdata'"));
  60      $dict->SetSchema('KUTU');
  61      
  62      $sqli = ($dict->CreateTableSQL('testtable',$flds, $opts));
  63      $sqla = array_merge($sqla,$sqli);
  64      
  65      $sqli = $dict->CreateIndexSQL('idx','testtable','firstname,lastname',array('BITMAP','FULLTEXT','CLUSTERED','HASH'));
  66      $sqla = array_merge($sqla,$sqli);
  67      $sqli = $dict->CreateIndexSQL('idx2','testtable','price,lastname');//,array('BITMAP','FULLTEXT','CLUSTERED'));
  68      $sqla = array_merge($sqla,$sqli);
  69      
  70      $addflds = array(array('height', 'F'),array('weight','F'));
  71      $sqli = $dict->AddColumnSQL('testtable',$addflds);
  72      $sqla = array_merge($sqla,$sqli);
  73      $addflds = array(array('height', 'F','NOTNULL'),array('weight','F','NOTNULL'));
  74      $sqli = $dict->AlterColumnSQL('testtable',$addflds);
  75      $sqla = array_merge($sqla,$sqli);
  76      
  77      
  78      printsqla($dbType,$sqla);
  79      
  80      if (file_exists('d:\inetpub\wwwroot\php\phplens\adodb\adodb.inc.php'))
  81      if ($dbType == 'mysqlt') {
  82          $db->Connect('localhost', "root", "", "test");
  83          $dict->SetSchema('');
  84          $sqla2 = $dict->ChangeTableSQL('adoxyz',$flds);
  85          if ($sqla2) printsqla($dbType,$sqla2);
  86      }
  87      if ($dbType == 'postgres') {
  88          if (@$db->Connect('localhost', "tester", "test", "test"));
  89          $dict->SetSchema('');
  90          $sqla2 = $dict->ChangeTableSQL('adoxyz',$flds);
  91          if ($sqla2) printsqla($dbType,$sqla2);
  92      }
  93      
  94      if ($dbType == 'odbc_mssql') {
  95          $dsn = $dsn = "PROVIDER=MSDASQL;Driver={SQL Server};Server=localhost;Database=northwind;";
  96          if (@$db->Connect($dsn, "sa", "natsoft", "test"));
  97          $dict->SetSchema('');
  98          $sqla2 = $dict->ChangeTableSQL('adoxyz',$flds);
  99          if ($sqla2) printsqla($dbType,$sqla2);
 100      }
 101      
 102      
 103      
 104      adodb_pr($dict->databaseType);
 105      printsqla($dbType, $dict->DropColumnSQL('table',array('my col','`col2_with_Quotes`','A_col3','col3(10)')));
 106      printsqla($dbType, $dict->ChangeTableSQL('adoxyz','LASTNAME varchar(32)'));
 107      
 108  }
 109  
 110  function printsqla($dbType,$sqla)
 111  {
 112      print "<pre>";
 113      //print_r($dict->MetaTables());
 114      foreach($sqla as $s) {
 115          $s = htmlspecialchars($s);
 116          print "$s;\n";
 117          if ($dbType == 'oci8') print "/\n";
 118      }
 119      print "</pre><hr />";
 120  }
 121  
 122  /***
 123  
 124  Generated SQL:
 125  
 126  mysql
 127  
 128  CREATE DATABASE KUTU;
 129  DROP TABLE KUTU.testtable;
 130  CREATE TABLE KUTU.testtable (
 131  id               INTEGER NOT NULL AUTO_INCREMENT,
 132  firstname        VARCHAR(30) DEFAULT 'Joan',
 133  lastname         VARCHAR(28) NOT NULL DEFAULT 'Chen',
 134  averylonglongfieldname LONGTEXT NOT NULL,
 135  price            NUMERIC(7,2) NOT NULL DEFAULT 0.00,
 136  MYDATE           DATE DEFAULT CURDATE(),
 137                   PRIMARY KEY (id, lastname)
 138  )TYPE=ISAM;
 139  CREATE FULLTEXT INDEX idx ON KUTU.testtable (firstname,lastname);
 140  CREATE INDEX idx2 ON KUTU.testtable (price,lastname);
 141  ALTER TABLE KUTU.testtable  ADD height           DOUBLE;
 142  ALTER TABLE KUTU.testtable  ADD weight           DOUBLE;
 143  ALTER TABLE KUTU.testtable  MODIFY COLUMN height           DOUBLE NOT NULL;
 144  ALTER TABLE KUTU.testtable  MODIFY COLUMN weight           DOUBLE NOT NULL;
 145  
 146  
 147  --------------------------------------------------------------------------------
 148  
 149  oci8
 150  
 151  CREATE USER KUTU IDENTIFIED BY tiger;
 152  /
 153  GRANT CREATE SESSION, CREATE TABLE,UNLIMITED TABLESPACE,CREATE SEQUENCE TO KUTU;
 154  /
 155  DROP TABLE KUTU.testtable CASCADE CONSTRAINTS;
 156  /
 157  CREATE TABLE KUTU.testtable (
 158  id               NUMBER(16) NOT NULL,
 159  firstname        VARCHAR(30) DEFAULT 'Joan',
 160  lastname         VARCHAR(28) DEFAULT 'Chen' NOT NULL,
 161  averylonglongfieldname CLOB NOT NULL,
 162  price            NUMBER(7,2) DEFAULT 0.00 NOT NULL,
 163  MYDATE           DATE DEFAULT TRUNC(SYSDATE),
 164                   PRIMARY KEY (id, lastname)
 165  )TABLESPACE USERS;
 166  /
 167  DROP SEQUENCE KUTU.SEQ_testtable;
 168  /
 169  CREATE SEQUENCE KUTU.SEQ_testtable;
 170  /
 171  CREATE OR REPLACE TRIGGER KUTU.TRIG_SEQ_testtable BEFORE insert ON KUTU.testtable 
 172          FOR EACH ROW
 173          BEGIN
 174            select KUTU.SEQ_testtable.nextval into :new.id from dual;
 175          END;
 176  /
 177  CREATE BITMAP INDEX idx ON KUTU.testtable (firstname,lastname);
 178  /
 179  CREATE INDEX idx2 ON KUTU.testtable (price,lastname);
 180  /
 181  ALTER TABLE testtable ADD (
 182   height           NUMBER,
 183   weight           NUMBER);
 184  /
 185  ALTER TABLE testtable MODIFY(
 186   height           NUMBER NOT NULL,
 187   weight           NUMBER NOT NULL);
 188  /
 189  
 190  
 191  --------------------------------------------------------------------------------
 192  
 193  postgres
 194  AlterColumnSQL not supported for PostgreSQL
 195  
 196  
 197  CREATE DATABASE KUTU LOCATION='/u01/postdata';
 198  DROP TABLE KUTU.testtable;
 199  CREATE TABLE KUTU.testtable (
 200  id               SERIAL,
 201  firstname        VARCHAR(30) DEFAULT 'Joan',
 202  lastname         VARCHAR(28) DEFAULT 'Chen' NOT NULL,
 203  averylonglongfieldname TEXT NOT NULL,
 204  price            NUMERIC(7,2) DEFAULT 0.00 NOT NULL,
 205  MYDATE           DATE DEFAULT CURRENT_DATE,
 206                   PRIMARY KEY (id, lastname)
 207  );
 208  CREATE INDEX idx ON KUTU.testtable USING HASH (firstname,lastname);
 209  CREATE INDEX idx2 ON KUTU.testtable (price,lastname);
 210  ALTER TABLE KUTU.testtable  ADD height           FLOAT8;
 211  ALTER TABLE KUTU.testtable  ADD weight           FLOAT8;
 212  
 213  
 214  --------------------------------------------------------------------------------
 215  
 216  odbc_mssql
 217  
 218  CREATE DATABASE KUTU;
 219  DROP TABLE KUTU.testtable;
 220  CREATE TABLE KUTU.testtable (
 221  id               INT IDENTITY(1,1) NOT NULL,
 222  firstname        VARCHAR(30) DEFAULT 'Joan',
 223  lastname         VARCHAR(28) DEFAULT 'Chen' NOT NULL,
 224  averylonglongfieldname TEXT NOT NULL,
 225  price            NUMERIC(7,2) DEFAULT 0.00 NOT NULL,
 226  MYDATE           DATETIME DEFAULT GetDate(),
 227                   PRIMARY KEY (id, lastname)
 228  );
 229  CREATE CLUSTERED INDEX idx ON KUTU.testtable (firstname,lastname);
 230  CREATE INDEX idx2 ON KUTU.testtable (price,lastname);
 231  ALTER TABLE KUTU.testtable  ADD
 232   height           REAL,
 233   weight           REAL;
 234  ALTER TABLE KUTU.testtable  ALTER COLUMN height           REAL NOT NULL;
 235  ALTER TABLE KUTU.testtable  ALTER COLUMN weight           REAL NOT NULL;
 236  
 237  
 238  --------------------------------------------------------------------------------
 239  */
 240  
 241  
 242  echo "<h1>Test XML Schema</h1>";
 243  $ff = file('xmlschema.xml');
 244  echo "<pre>";
 245  foreach($ff as $xml) echo htmlspecialchars($xml);
 246  echo "</pre>";
 247  include_once ('test-xmlschema.php');
 248  ?>


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