Update to upstream version 4.94
authorKarsten Dambekalns <karsten.dambekalns@typo3.org>
Thu, 22 Mar 2007 16:15:19 +0000 (16:15 +0000)
committerKarsten Dambekalns <karsten.dambekalns@typo3.org>
Thu, 22 Mar 2007 16:15:19 +0000 (16:15 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@2194 709f56b5-9817-0410-a4d7-c38de5d9e867

125 files changed:
ChangeLog
typo3/sysext/adodb/adodb/adodb-active-record.inc.php
typo3/sysext/adodb/adodb/adodb-csvlib.inc.php
typo3/sysext/adodb/adodb/adodb-datadict.inc.php
typo3/sysext/adodb/adodb/adodb-error.inc.php
typo3/sysext/adodb/adodb/adodb-errorhandler.inc.php
typo3/sysext/adodb/adodb/adodb-errorpear.inc.php
typo3/sysext/adodb/adodb/adodb-exceptions.inc.php
typo3/sysext/adodb/adodb/adodb-iterator.inc.php
typo3/sysext/adodb/adodb/adodb-lib.inc.php
typo3/sysext/adodb/adodb/adodb-memcache.lib.inc.php
typo3/sysext/adodb/adodb/adodb-pager.inc.php
typo3/sysext/adodb/adodb/adodb-pear.inc.php
typo3/sysext/adodb/adodb/adodb-perf.inc.php
typo3/sysext/adodb/adodb/adodb-php4.inc.php
typo3/sysext/adodb/adodb/adodb.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-access.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-db2.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-firebird.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-generic.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-ibase.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-informix.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-mssql.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-mysql.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-oci8.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-postgres.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-sapdb.inc.php
typo3/sysext/adodb/adodb/datadict/datadict-sybase.inc.php
typo3/sysext/adodb/adodb/docs/docs-active-record.htm
typo3/sysext/adodb/adodb/docs/docs-adodb.htm
typo3/sysext/adodb/adodb/docs/docs-datadict.htm
typo3/sysext/adodb/adodb/docs/docs-perf.htm
typo3/sysext/adodb/adodb/docs/docs-session.htm
typo3/sysext/adodb/adodb/docs/docs-session.old.htm
typo3/sysext/adodb/adodb/drivers/adodb-access.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-ado.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-ado5.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-ado_access.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-ado_mssql.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-borland_ibase.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-csv.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-db2.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-fbsql.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-firebird.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-ibase.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-informix.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-informix72.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-ldap.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-mssql.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-mssqlpo.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-mysql.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-mysqli.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-mysqlt.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-netezza.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-oci8.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-oci805.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-oci8po.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-odbc.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-odbc_db2.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-odbc_mssql.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-odbc_oracle.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-odbtp.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-odbtp_unicode.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-oracle.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-pdo.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-pdo_mssql.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-pdo_mysql.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-pdo_oci.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-pdo_pgsql.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-postgres.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-postgres64.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-postgres7.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-postgres8.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-proxy.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-sapdb.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-sqlanywhere.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-sqlite.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-sqlitepo.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-sybase.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-sybase_ase.inc.php
typo3/sysext/adodb/adodb/drivers/adodb-vfp.inc.php
typo3/sysext/adodb/adodb/lang/adodb-bgutf8.inc.php
typo3/sysext/adodb/adodb/perf/perf-db2.inc.php
typo3/sysext/adodb/adodb/perf/perf-informix.inc.php
typo3/sysext/adodb/adodb/perf/perf-mssql.inc.php
typo3/sysext/adodb/adodb/perf/perf-mysql.inc.php
typo3/sysext/adodb/adodb/perf/perf-oci8.inc.php
typo3/sysext/adodb/adodb/perf/perf-postgres.inc.php
typo3/sysext/adodb/adodb/pivottable.inc.php
typo3/sysext/adodb/adodb/rsfilter.inc.php
typo3/sysext/adodb/adodb/server.php
typo3/sysext/adodb/adodb/session/adodb-compress-bzip2.php
typo3/sysext/adodb/adodb/session/adodb-compress-gzip.php
typo3/sysext/adodb/adodb/session/adodb-cryptsession.php
typo3/sysext/adodb/adodb/session/adodb-cryptsession2.php
typo3/sysext/adodb/adodb/session/adodb-encrypt-mcrypt.php
typo3/sysext/adodb/adodb/session/adodb-encrypt-md5.php
typo3/sysext/adodb/adodb/session/adodb-encrypt-secret.php
typo3/sysext/adodb/adodb/session/adodb-session-clob.php
typo3/sysext/adodb/adodb/session/adodb-session-clob2.php
typo3/sysext/adodb/adodb/session/adodb-session.php
typo3/sysext/adodb/adodb/session/adodb-session2.php
typo3/sysext/adodb/adodb/session/old/adodb-cryptsession.php
typo3/sysext/adodb/adodb/session/old/adodb-session-clob.php
typo3/sysext/adodb/adodb/session/old/adodb-session.php
typo3/sysext/adodb/adodb/tests/benchmark.php
typo3/sysext/adodb/adodb/tests/test-datadict.php
typo3/sysext/adodb/adodb/tests/test-php5.php
typo3/sysext/adodb/adodb/tests/test.php
typo3/sysext/adodb/adodb/tests/test3.php
typo3/sysext/adodb/adodb/tests/test4.php
typo3/sysext/adodb/adodb/tests/test5.php
typo3/sysext/adodb/adodb/tests/testcache.php
typo3/sysext/adodb/adodb/tests/testdatabases.inc.php
typo3/sysext/adodb/adodb/tests/testmssql.php
typo3/sysext/adodb/adodb/tests/testoci8.php
typo3/sysext/adodb/adodb/tests/testoci8cursor.php
typo3/sysext/adodb/adodb/tests/testpaging.php
typo3/sysext/adodb/adodb/tests/testpear.php
typo3/sysext/adodb/adodb/tests/testsessions.php
typo3/sysext/adodb/adodb/toexport.inc.php
typo3/sysext/adodb/adodb/tohtml.inc.php
typo3/sysext/adodb/doc/493.DBAL.patch [deleted file]
typo3/sysext/adodb/doc/494.DBAL.patch [new file with mode: 0644]
typo3/sysext/adodb/ext_emconf.php

index b9a8f95..42891e2 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2007-03-22  Karsten Dambekalns  <karsten@typo3.org>
+
+       * typo3/sysext/adodb: Update to upstream version 4.94.
+
 2007-03-12  Michael Stucki  <michael@typo3.org>
 
        * Change copyright information in typo3/index.php (no real change, just replace the hardcoded years with the "TYPO3_copyright_year" constant)
index fb23951..35bf968 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
 
-@version V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+@version V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
   Latest version is available at http://adodb.sourceforge.net
  
   Released under both BSD license and Lesser GPL library license. 
@@ -10,7 +10,7 @@
   
   Active Record implementation. Superset of Zend Framework's.
   
-  Version 0.04
+  Version 0.07
   
   See http://www-128.ibm.com/developerworks/java/library/j-cb03076/?ca=dgr-lnxw01ActiveRecord 
        for info on Ruby on Rails Active Record implementation
@@ -42,9 +42,9 @@ function ADODB_SetDatabaseAdapter(&$db)
        
                foreach($_ADODB_ACTIVE_DBS as $k => $d) {
                        if (PHP_VERSION >= 5) {
-                               if ($d->db == $db) return $k;
+                               if ($d->db === $db) return $k;
                        } else {
-                               if ($d->db->_connectionID == $db->_connectionID && $db->database == $d->db->database) 
+                               if ($d->db->_connectionID === $db->_connectionID && $db->database == $d->db->database) 
                                        return $k;
                        }
                }
@@ -223,7 +223,7 @@ class ADODB_Active_Record {
                        break;
                default:
                        foreach($cols as $name => $fldobj) {
-                               $name = ($fldobj->$name);
+                               $name = ($fldobj->name);
                                $this->$name = null;
                                $attr[$name] = $fldobj;
                        }
@@ -285,6 +285,15 @@ class ADODB_Active_Record {
                return $this->_lasterr;
        }
        
+       function ErrorNo() 
+       {
+               if ($this->_dbat < 0) return -9999; // no database connection...
+               $db = $this->DB();
+               
+               return (int) $db->ErrorNo();
+       }
+
+
        // retrieve ADOConnection from _ADODB_Active_DBs
        function &DB()
        {
index a031d98..1e34d39 100644 (file)
@@ -8,7 +8,7 @@ $ADODB_INCLUDED_CSV = 1;
 
 /* 
 
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt. 
index edfa5a6..c31edd8 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
@@ -277,7 +277,7 @@ class ADODB_DataDict {
                return $rez;
        }
        
-       /*
+       /**
                Returns the actual type given a character code.
                
                C:  varchar
@@ -344,11 +344,19 @@ class ADODB_DataDict {
        {
                $tabname = $this->TableName ($tabname);
                $sql = array();
-               list($lines,$pkey) = $this->_GenFields($flds);
+               list($lines,$pkey,$idxs) = $this->_GenFields($flds);
+               // genfields can return FALSE at times
+               if ($lines  == null) $lines = array();
                $alter = 'ALTER TABLE ' . $tabname . $this->addCol . ' ';
                foreach($lines as $v) {
                        $sql[] = $alter . $v;
                }
+               if (is_array($idxs)) {
+                       foreach($idxs as $idx => $idxdef) {
+                               $sql_idxs = $this->CreateIndexSql($idx, $tabname, $idxdef['cols'], $idxdef['opts']);
+                               $sql = array_merge($sql, $sql_idxs);
+                       }
+               }
                return $sql;
        }
        
@@ -367,11 +375,20 @@ class ADODB_DataDict {
        {
                $tabname = $this->TableName ($tabname);
                $sql = array();
-               list($lines,$pkey) = $this->_GenFields($flds);
+               list($lines,$pkey,$idxs) = $this->_GenFields($flds);
+               // genfields can return FALSE at times
+               if ($lines == null) $lines = array();
                $alter = 'ALTER TABLE ' . $tabname . $this->alterCol . ' ';
                foreach($lines as $v) {
                        $sql[] = $alter . $v;
                }
+               if (is_array($idxs)) {
+                       foreach($idxs as $idx => $idxdef) {
+                               $sql_idxs = $this->CreateIndexSql($idx, $tabname, $idxdef['cols'], $idxdef['opts']);
+                               $sql = array_merge($sql, $sql_idxs);
+                       }
+
+               }
                return $sql;
        }
        
@@ -389,7 +406,9 @@ class ADODB_DataDict {
        {
                $tabname = $this->TableName ($tabname);
                if ($flds) {
-                       list($lines,$pkey) = $this->_GenFields($flds);
+                       list($lines,$pkey,$idxs) = $this->_GenFields($flds);
+                       // genfields can return FALSE at times
+                       if ($lines == null) $lines = array();
                        list(,$first) = each($lines);
                        list(,$column_def) = split("[\t ]+",$first,2);
                }
@@ -429,22 +448,36 @@ class ADODB_DataDict {
                return array (sprintf($this->renameTable, $this->TableName($tabname),$this->TableName($newname)));
        }       
        
-       /*
+       /**
         Generate the SQL to create table. Returns an array of sql strings.
        */
-       function CreateTableSQL($tabname, $flds, $tableoptions=false)
+       function CreateTableSQL($tabname, $flds, $tableoptions=array())
        {
-               if (!$tableoptions) $tableoptions = array();
-               
-               list($lines,$pkey) = $this->_GenFields($flds, true);
+               list($lines,$pkey,$idxs) = $this->_GenFields($flds, true);
+               // genfields can return FALSE at times
+               if ($lines == null) $lines = array();
                
                $taboptions = $this->_Options($tableoptions);
                $tabname = $this->TableName ($tabname);
                $sql = $this->_TableSQL($tabname,$lines,$pkey,$taboptions);
                
+               // ggiunta - 2006/10/12 - KLUDGE:
+        // if we are on autoincrement, and table options includes REPLACE, the
+        // autoincrement sequence has already been dropped on table creation sql, so
+        // we avoid passing REPLACE to trigger creation code. This prevents
+        // creating sql that double-drops the sequence
+        if ($this->autoIncrement && isset($taboptions['REPLACE']))
+               unset($taboptions['REPLACE']);
                $tsql = $this->_Triggers($tabname,$taboptions);
                foreach($tsql as $s) $sql[] = $s;
                
+               if (is_array($idxs)) {
+                       foreach($idxs as $idx => $idxdef) {
+                               $sql_idxs = $this->CreateIndexSql($idx, $tabname,  $idxdef['cols'], $idxdef['opts']);
+                               $sql = array_merge($sql, $sql_idxs);
+                       }
+               }
+
                return $sql;
        }
        
@@ -460,6 +493,9 @@ class ADODB_DataDict {
                                $f1 = array();
                                foreach($f0 as $token) {
                                        switch (strtoupper($token)) {
+                                       case 'INDEX':
+                                               $f1['INDEX'] = '';
+                                               // fall through intentionally
                                        case 'CONSTRAINT':
                                        case 'DEFAULT': 
                                                $hasparam = $token;
@@ -471,6 +507,20 @@ class ADODB_DataDict {
                                                break;
                                        }
                                }
+                               // 'index' token without a name means single column index: name it after column
+                               if (array_key_exists('INDEX', $f1) && $f1['INDEX'] == '') {
+                                       $f1['INDEX'] = isset($f0['NAME']) ? $f0['NAME'] : $f0[0];
+                                       // check if column name used to create an index name was quoted
+                                       if (($f1['INDEX'][0] == '"' || $f1['INDEX'][0] == "'" || $f1['INDEX'][0] == "`") &&
+                                               ($f1['INDEX'][0] == substr($f1['INDEX'], -1))) {
+                                               $f1['INDEX'] = $f1['INDEX'][0].'idx_'.substr($f1['INDEX'], 1, -1).$f1['INDEX'][0];
+                                       }
+                                       else
+                                               $f1['INDEX'] = 'idx_'.$f1['INDEX'];
+                               }
+                               // reset it, so we don't get next field 1st token as INDEX...
+                               $hasparam = false;
+
                                $flds[] = $f1;
                                
                        }
@@ -478,9 +528,10 @@ class ADODB_DataDict {
                $this->autoIncrement = false;
                $lines = array();
                $pkey = array();
+               $idxs = array();
                foreach($flds as $fld) {
                        $fld = _array_change_key_case($fld);
-               
+                       
                        $fname = false;
                        $fdefault = false;
                        $fautoinc = false;
@@ -494,6 +545,8 @@ class ADODB_DataDict {
                        $fconstraint = false;
                        $fnotnull = false;
                        $funsigned = false;
+                       $findex = '';
+                       $funiqueindex = false;
                        
                        //-----------------
                        // Parse attributes
@@ -519,7 +572,8 @@ class ADODB_DataDict {
                                case 'AUTOINCREMENT':
                                case 'AUTO':    $fautoinc = true; $fnotnull = true; break;
                                case 'KEY':
-                               case 'PRIMARY': $fprimary = $v; $fnotnull = true; break;
+                // a primary key col can be non unique in itself (if key spans many cols...)
+                               case 'PRIMARY': $fprimary = $v; $fnotnull = true; /*$funiqueindex = true;*/ break;
                                case 'DEF':
                                case 'DEFAULT': $fdefault = $v; break;
                                case 'NOTNULL': $fnotnull = $v; break;
@@ -527,6 +581,9 @@ class ADODB_DataDict {
                                case 'DEFDATE': $fdefdate = $v; break;
                                case 'DEFTIMESTAMP': $fdefts = $v; break;
                                case 'CONSTRAINT': $fconstraint = $v; break;
+                               // let INDEX keyword create a 'very standard' index on column
+                               case 'INDEX': $findex = $v; break;
+                               case 'UNIQUE': $funiqueindex = true; break;
                                } //switch
                        } // foreach $fld
                        
@@ -556,6 +613,27 @@ class ADODB_DataDict {
                        // some databases do not allow blobs to have defaults
                        if ($ty == 'X') $fdefault = false;
                        
+                       // build list of indexes
+                       if ($findex != '') {
+                               if (array_key_exists($findex, $idxs)) {
+                                       $idxs[$findex]['cols'][] = ($fname);
+                                       if (in_array('UNIQUE', $idxs[$findex]['opts']) != $funiqueindex) {
+                                               if ($this->debug) ADOConnection::outp("Index $findex defined once UNIQUE and once not");
+                                       }
+                                       if ($funiqueindex && !in_array('UNIQUE', $idxs[$findex]['opts']))
+                                               $idxs[$findex]['opts'][] = 'UNIQUE';
+                               }
+                               else
+                               {
+                                       $idxs[$findex] = array();
+                                       $idxs[$findex]['cols'] = array($fname);
+                                       if ($funiqueindex)
+                                               $idxs[$findex]['opts'] = array('UNIQUE');
+                                       else
+                                               $idxs[$findex]['opts'] = array();
+                               }
+                       }
+
                        //--------------------
                        // CONSTRUCT FIELD SQL
                        if ($fdefts) {
@@ -570,24 +648,47 @@ class ADODB_DataDict {
                                } else {
                                        $fdefault = $this->connection->sysDate;
                                }
-                       } else if ($fdefault !== false && !$fnoquote)
+                       } else if ($fdefault !== false && !$fnoquote) {
                                if ($ty == 'C' or $ty == 'X' or 
-                                       ( substr($fdefault,0,1) != "'" && !is_numeric($fdefault)))
+                                       ( substr($fdefault,0,1) != "'" && !is_numeric($fdefault))) {
+
+                                       if (($ty == 'D' || $ty == 'T') && strtolower($fdefault) != 'null') {
+                                               // convert default date into database-aware code
+                                               if ($ty == 'T')
+                                               {
+                                                       $fdefault = $this->connection->DBTimeStamp($fdefault);
+                                               }
+                                               else
+                                               {
+                                                       $fdefault = $this->connection->DBDate($fdefault);
+                                               }
+                                       }
+                                       else
                                        if (strlen($fdefault) != 1 && substr($fdefault,0,1) == ' ' && substr($fdefault,strlen($fdefault)-1) == ' ') 
                                                $fdefault = trim($fdefault);
                                        else if (strtolower($fdefault) != 'null')
                                                $fdefault = $this->connection->qstr($fdefault);
+                               }
+                       }
                        $suffix = $this->_CreateSuffix($fname,$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned);
                        
+                       // add index creation
                        if ($widespacing) $fname = str_pad($fname,24);
+                       
+                        // check for field names appearing twice
+            if (array_key_exists($fid, $lines)) {
+                ADOConnection::outp("Field '$fname' defined twice");
+            }
+                       
                        $lines[$fid] = $fname.' '.$ftype.$suffix;
                        
                        if ($fautoinc) $this->autoIncrement = true;
                } // foreach $flds
                
-               return array($lines,$pkey);
+               return array($lines,$pkey,$idxs);
        }
-       /*
+
+       /**
                 GENERATE THE SIZE PART OF THE DATATYPE
                        $ftype is the actual type
                        $ty is the type defined originally in the DDL
@@ -680,7 +781,7 @@ class ADODB_DataDict {
                return $sql;
        }
        
-       /*
+       /**
                GENERATE TRIGGERS IF NEEDED
                used when table has auto-incrementing field that is emulated using triggers
        */
@@ -689,7 +790,7 @@ class ADODB_DataDict {
                return array();
        }
        
-       /*
+       /**
                Sanitize options, so that array elements with no keys are promoted to keys
        */
        function _Options($opts)
@@ -703,7 +804,7 @@ class ADODB_DataDict {
                return $newopts;
        }
        
-       /*
+       /**
        "Florian Buzin [ easywe ]" <florian.buzin#easywe.de>
        
        This function changes/adds new fields to your table. You don't
@@ -760,7 +861,9 @@ class ADODB_DataDict {
        
 
                // already exists, alter table instead
-               list($lines,$pkey) = $this->_GenFields($flds);
+               list($lines,$pkey,$idxs) = $this->_GenFields($flds);
+               // genfields can return FALSE at times
+               if ($lines == null) $lines = array();
                $alter = 'ALTER TABLE ' . $this->TableName($tablename);
                $sql = array();
 
@@ -770,8 +873,10 @@ class ADODB_DataDict {
                                $flds = Lens_ParseArgs($v,',');
                                
                                //  We are trying to change the size of the field, if not allowed, simply ignore the request.
-                               if ($flds && in_array(strtoupper(substr($flds[0][1],0,4)),$this->invalidResizeTypes4)) continue;         
-                       
+                               if ($flds && in_array(strtoupper(substr($flds[0][1],0,4)),$this->invalidResizeTypes4)) {
+                                       echo "<h3>$this->alterCol cannot be changed to $flds currently</h3>";
+                                       continue;        
+                               }
                                $sql[] = $alter . $this->alterCol . ' ' . $v;
                        } else {
                                $sql[] = $alter . $this->addCol . ' ' . $v;
index 8c959dc..e60976b 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /** 
- * @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 6b85211..87a9267 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @version V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 37d7bf1..31cbe61 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /** 
- * @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 1f11e54..3eebc4e 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
- * @version V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 031c963..d291e78 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /*
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 0f034bd..ec28682 100644 (file)
@@ -7,7 +7,7 @@ global $ADODB_INCLUDED_LIB;
 $ADODB_INCLUDED_LIB = 1;
 
 /* 
- @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim\@natsoft.com.my). All rights reserved.
+ @version V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim\@natsoft.com.my). 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. See License.txt. 
@@ -56,16 +56,17 @@ function adodb_probetypes(&$array,&$types,$probe=8)
                        
                }
        }
+       
 }
 
-function  &adodb_transpose(&$arr, &$newarr, &$hdr)
+function  adodb_transpose(&$arr, &$newarr, &$hdr, &$fobjs)
 {
        $oldX = sizeof(reset($arr));
        $oldY = sizeof($arr);   
        
        if ($hdr) {
                $startx = 1;
-               $hdr = array();
+               $hdr = array('Fields');
                for ($y = 0; $y < $oldY; $y++) {
                        $hdr[] = $arr[$y][0];
                }
@@ -73,7 +74,12 @@ function  &adodb_transpose(&$arr, &$newarr, &$hdr)
                $startx = 0;
 
        for ($x = $startx; $x < $oldX; $x++) {
-               $newarr[] = array();
+               if ($fobjs) {
+                       $o = $fobjs[$x];
+                       $newarr[] = array($o->name);
+               } else
+                       $newarr[] = array();
+                       
                for ($y = 0; $y < $oldY; $y++) {
                        $newarr[$x-$startx][] = $arr[$y][$x];
                }
@@ -560,6 +566,8 @@ function &_adodb_pageexecute_no_last_page(&$zthis, $sql, $nrows, $page, $inputar
 
 function _adodb_getupdatesql(&$zthis,&$rs, $arrFields,$forceUpdate=false,$magicq=false,$force=2)
 {
+       global $ADODB_QUOTE_FIELDNAMES;
+
                if (!$rs) {
                        printf(ADODB_BAD_RS,'GetUpdateSQL');
                        return false;
@@ -606,7 +614,7 @@ function _adodb_getupdatesql(&$zthis,&$rs, $arrFields,$forceUpdate=false,$magicq
                                                $type = 'C';
                                        }
                                        
-                                       if (strpos($upperfname,' ') !== false)
+                                       if ((strpos($upperfname,' ') !== false) || ($ADODB_QUOTE_FIELDNAMES))
                                                $fnameq = $zthis->nameQuote.$upperfname.$zthis->nameQuote;
                                        else
                                                $fnameq = $upperfname;
@@ -720,6 +728,7 @@ function _adodb_getinsertsql(&$zthis,&$rs,$arrFields,$magicq=false,$force=2)
 static $cacheRS = false;
 static $cacheSig = 0;
 static $cacheCols;
+       global $ADODB_QUOTE_FIELDNAMES;
 
        $tableName = '';
        $values = '';
@@ -769,7 +778,7 @@ static $cacheCols;
                $upperfname = strtoupper($field->name);
                if (adodb_key_exists($upperfname,$arrFields,$force)) {
                        $bad = false;
-                       if (strpos($upperfname,' ') !== false)
+                       if ((strpos($upperfname,' ') !== false) || ($ADODB_QUOTE_FIELDNAMES))
                                $fnameq = $zthis->nameQuote.$upperfname.$zthis->nameQuote;
                        else
                                $fnameq = $upperfname;
index fc4748a..bc6b420 100644 (file)
-<?php
-
-// security - hide paths
-if (!defined('ADODB_DIR')) die();
-
-global $ADODB_INCLUDED_MEMCACHE;
-$ADODB_INCLUDED_MEMCACHE = 1;
-
-/* 
-
-  V4.90 8 June 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). 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. See License.txt. 
-  Set tabs to 4 for best viewing.
-  
-  Latest version is available at http://adodb.sourceforge.net
-  
-*/
-
-       function &getmemcache($key,&$err, $timeout=0, $host, $port)
-       {
-               $false = false;
-               $err = false;
-
-               if (!function_exists('memcache_pconnect')) {
-                       $err = 'Memcache module PECL extension not found!';
-                       return $false;
-               }
-
-               $memcache = new Memcache;
-               if (!@$memcache->pconnect($host, $port)) {
-                       $err = 'Can\'t connect to memcache server on: '.$host.':'.$port;
-                       return $false;
-               }
-
-               $rs = $memcache->get($key);
-               if (!$rs) {
-                       $err = 'Item with such key doesn\'t exists on the memcached server.';
-                       return $false;
-               }
-
-               $tdiff = intval($rs->timeCreated+$timeout - time());
-               if ($tdiff <= 2) {
-                       switch($tdiff) {
-                               case 2: 
-                                       if ((rand() & 15) == 0) {
-                                               $err = "Timeout 2";
-                                               return $false;
-                                       }
-                                       break;
-                               case 1:
-                                       if ((rand() & 3) == 0) {
-                                               $err = "Timeout 1";
-                                               return $false;
-                                       }
-                                       break;
-                               default: 
-                                       $err = "Timeout 0";
-                                       return $false;
-                       }
-               }
-               return $rs;
-       }
-
-       function putmemcache($key, $rs, $host, $port, $compress, $debug=false)
-       {
-               $false = false;
-               $true = true;
-
-               if (!function_exists('memcache_pconnect')) {
-                       if ($debug) ADOConnection::outp(" Memcache module PECL extension not found!<br>\n");
-                       return $false;
-               }
-
-               $memcache = new Memcache;
-               if (!@$memcache->pconnect($host, $port)) {
-                       if ($debug) ADOConnection::outp(" Can't connect to memcache server on: $host:$port<br>\n");
-                       return $false;
-               }
-
-               $rs->timeCreated = time();
-               if (!$memcache->set($key, $rs, $compress, 0)) {
-                       if ($debug) ADOConnection::outp(" Failed to save data at the memcached server!<br>\n");
-                       return $false;
-               }
-               return $true;
-       }
-
-       function flushmemcache($key=false, $host, $port, $debug=false)
-       {
-               if (!function_exists('memcache_pconnect')) {
-                       if ($debug) ADOConnection::outp(" Memcache module PECL extension not found!<br>\n");
-                       return;
-               }
-
-               $memcache = new Memcache;
-               if (!@$memcache->pconnect($host, $port)) {
-                       if ($debug) ADOConnection::outp(" Can't connect to memcache server on: $host:$port<br>\n");
-                       return;
-               }
-
-               if ($key) {
-                       if (!$memcache->delete($key)) {
-                               if ($debug) ADOConnection::outp("CacheFlush: $key entery doesn't exist on memcached server!<br>\n");
-                       } else {
-                               if ($debug) ADOConnection::outp("CacheFlush: $key entery flushed from memcached server!<br>\n");
-                       }
-               } else {
-                       if (!$memcache->flush()) {
-                               if ($debug) ADOConnection::outp("CacheFlush: Failure flushing all enteries from memcached server!<br>\n");
-                       } else {
-                               if ($debug) ADOConnection::outp("CacheFlush: All enteries flushed from memcached server!<br>\n");
-                       }
-               }
-               return;
-       }
-?>
+<?php\r
+\r
+// security - hide paths\r
+if (!defined('ADODB_DIR')) die();\r
+\r
+global $ADODB_INCLUDED_MEMCACHE;\r
+$ADODB_INCLUDED_MEMCACHE = 1;\r
+\r
+/* \r
+\r
+  V4.90 8 June 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.\r
+  Released under both BSD license and Lesser GPL library license. \r
+  Whenever there is any discrepancy between the two licenses, \r
+  the BSD license will take precedence. See License.txt. \r
+  Set tabs to 4 for best viewing.\r
+  \r
+  Latest version is available at http://adodb.sourceforge.net\r
+  \r
+*/\r
+\r
+       function &getmemcache($key,&$err, $timeout=0, $host, $port)\r
+       {\r
+               $false = false;\r
+               $err = false;\r
+\r
+               if (!function_exists('memcache_pconnect')) {\r
+                       $err = 'Memcache module PECL extension not found!';\r
+                       return $false;\r
+               }\r
+\r
+               $memcache = new Memcache;\r
+               if (!@$memcache->pconnect($host, $port)) {\r
+                       $err = 'Can\'t connect to memcache server on: '.$host.':'.$port;\r
+                       return $false;\r
+               }\r
+\r
+               $rs = $memcache->get($key);\r
+               if (!$rs) {\r
+                       $err = 'Item with such key doesn\'t exists on the memcached server.';\r
+                       return $false;\r
+               }\r
+\r
+               $tdiff = intval($rs->timeCreated+$timeout - time());\r
+               if ($tdiff <= 2) {\r
+                       switch($tdiff) {\r
+                               case 2: \r
+                                       if ((rand() & 15) == 0) {\r
+                                               $err = "Timeout 2";\r
+                                               return $false;\r
+                                       }\r
+                                       break;\r
+                               case 1:\r
+                                       if ((rand() & 3) == 0) {\r
+                                               $err = "Timeout 1";\r
+                                               return $false;\r
+                                       }\r
+                                       break;\r
+                               default: \r
+                                       $err = "Timeout 0";\r
+                                       return $false;\r
+                       }\r
+               }\r
+               return $rs;\r
+       }\r
+\r
+       function putmemcache($key, $rs, $host, $port, $compress, $debug=false)\r
+       {\r
+               $false = false;\r
+               $true = true;\r
+\r
+               if (!function_exists('memcache_pconnect')) {\r
+                       if ($debug) ADOConnection::outp(" Memcache module PECL extension not found!<br>\n");\r
+                       return $false;\r
+               }\r
+\r
+               $memcache = new Memcache;\r
+               if (!@$memcache->pconnect($host, $port)) {\r
+                       if ($debug) ADOConnection::outp(" Can't connect to memcache server on: $host:$port<br>\n");\r
+                       return $false;\r
+               }\r
+\r
+               $rs->timeCreated = time();\r
+               if (!$memcache->set($key, $rs, $compress, 0)) {\r
+                       if ($debug) ADOConnection::outp(" Failed to save data at the memcached server!<br>\n");\r
+                       return $false;\r
+               }\r
+               return $true;\r
+       }\r
+\r
+       function flushmemcache($key=false, $host, $port, $debug=false)\r
+       {\r
+               if (!function_exists('memcache_pconnect')) {\r
+                       if ($debug) ADOConnection::outp(" Memcache module PECL extension not found!<br>\n");\r
+                       return;\r
+               }\r
+\r
+               $memcache = new Memcache;\r
+               if (!@$memcache->pconnect($host, $port)) {\r
+                       if ($debug) ADOConnection::outp(" Can't connect to memcache server on: $host:$port<br>\n");\r
+                       return;\r
+               }\r
+\r
+               if ($key) {\r
+                       if (!$memcache->delete($key)) {\r
+                               if ($debug) ADOConnection::outp("CacheFlush: $key entery doesn't exist on memcached server!<br>\n");\r
+                       } else {\r
+                               if ($debug) ADOConnection::outp("CacheFlush: $key entery flushed from memcached server!<br>\n");\r
+                       }\r
+               } else {\r
+                       if (!$memcache->flush()) {\r
+                               if ($debug) ADOConnection::outp("CacheFlush: Failure flushing all enteries from memcached server!<br>\n");\r
+                       } else {\r
+                               if ($debug) ADOConnection::outp("CacheFlush: All enteries flushed from memcached server!<br>\n");\r
+                       }\r
+               }\r
+               return;\r
+       }\r
+?>\r
index 0aa3e6a..22321b2 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /*
-       V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+       V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index e1d17b8..ecaf753 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /** 
- * @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index a9093c4..e00359f 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt. 
index a23dc17..99fda17 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /*
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index d26b1bb..351d505 100644 (file)
@@ -1,4 +1,4 @@
-<?php
+<?php 
 /*
  * Set tabs to 4 for best viewing.
  * 
@@ -14,7 +14,7 @@
 /**
        \mainpage       
        
-        @version V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+        @version V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
 
        Released under both BSD license and Lesser GPL library license. You can choose which license
        you prefer.
@@ -56,7 +56,8 @@
                $ADODB_CACHE_DIR,       // directory to cache recordsets
                $ADODB_EXTENSION,   // ADODB extension installed
                $ADODB_COMPAT_FETCH, // If $ADODB_COUNTRECS and this is true, $rs->fields is available on EOF
-               $ADODB_FETCH_MODE;      // DEFAULT, NUM, ASSOC or BOTH. Default follows native driver default...
+               $ADODB_FETCH_MODE,      // DEFAULT, NUM, ASSOC or BOTH. Default follows native driver default...
+               $ADODB_QUOTE_FIELDNAMES; // Allows you to force quotes (backticks) around field names in queries generated by getinsertsql and getupdatesql.    
        
        //==============================================================================================        
        // GLOBAL SETUP
                $ADODB_COUNTRECS,       // count number of records returned - slows down query
                $ADODB_CACHE_DIR,       // directory to cache recordsets
                $ADODB_FETCH_MODE,
-               $ADODB_FORCE_TYPE;
+               $ADODB_FORCE_TYPE,
+               $ADODB_QUOTE_FIELDNAMES;
                
                $ADODB_FETCH_MODE = ADODB_FETCH_DEFAULT;
                $ADODB_FORCE_TYPE = ADODB_FORCE_VALUE;
                /**
                 * ADODB version as a string.
                 */
-               $ADODB_vers = 'V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved. Released BSD & LGPL.';
+               $ADODB_vers = 'V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved. Released BSD & LGPL.';
        
                /**
                 * Determines whether recordset->RecordCount() is used. 
                } 
                
                if ($this->_queryID === true) { // return simplified recordset for inserts/updates/deletes with lower overhead
-                       $rs =& new ADORecordSet_empty();
+                       $rs = new ADORecordSet_empty();
                        return $rs;
                }
                
                return $rv;
        }
        
-       function &Transpose(&$rs)
+       function &Transpose(&$rs,$addfieldnames=true)
        {
                $rs2 =& $this->_rs2rs($rs);
                $false = false;
                if (!$rs2) return $false;
                
-               $rs2->_transpose();
+               $rs2->_transpose($addfieldnames);
                return $rs2;
        }
  
                
                if (empty($this->_metars)) {
                        $rsclass = $this->rsPrefix.$this->databaseType;
-                       $this->_metars =& new $rsclass(false,$this->fetchMode); 
+                       $this->_metars = new $rsclass(false,$this->fetchMode); 
                        $this->_metars->connection =& $this;
                }
                return $this->_metars->MetaType($t,$len,$fieldobj);
                                $this->fmtTimeStamp = "'m-d-Y H:i:s'";
                                break;
                                
+                       case 'PT_BR':   
                        case 'NL':
                        case 'FR':
                        case 'RO':
                $arr = array();
                foreach($rows as $row) {
                
-                       $obj =& new $class($table,$primkeyArr,$this);
+                       $obj = new $class($table,$primkeyArr,$this);
                        if ($obj->ErrorMsg()){
                                $this->_errorMsg = $obj->ErrorMsg();
                                return $false;
                        }
                        $obj->Set($row);
-                       $arr[] =& $obj;
+                       $arr[] = $obj;
                }
                return $arr;
        }
         *
         * @return true if succeeded or false if database does not support transactions
         */
-       function BeginTrans() {return false;}
+       function BeginTrans() 
+       {
+               if ($this->debug) ADOConnection::outp("BeginTrans: Transactions not supported for this driver");
+               return false;
+       }
        
        /* set transaction mode */
        function SetTransactionMode( $transaction_mode ) 
@@ -3387,9 +3394,12 @@ http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_1
         *
         * @return the ADOFieldObject for that column, or false.
         */
-       function &FetchField($fieldoffset) 
+       function &FetchField($fieldoffset = -1
        {
                // must be defined by child class
+               
+               $false = false;
+               return $false;
        }       
        
        /**
@@ -3734,14 +3744,15 @@ http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_1
                        $this->fetchMode = $ADODB_FETCH_MODE;
                }
                
-               function _transpose()
+               function _transpose($addfieldnames=true)
                {
                global $ADODB_INCLUDED_LIB;
                        
                        if (empty($ADODB_INCLUDED_LIB)) include(ADODB_DIR.'/adodb-lib.inc.php');
                        $hdr = true;
                        
-                       adodb_transpose($this->_array, $newarr, $hdr);
+                       $fobjs = $addfieldnames ? $this->_fieldobjects : false;
+                       adodb_transpose($this->_array, $newarr, $hdr, $fobjs);
                        //adodb_pr($newarr);
                        
                        $this->_skiprow1 = false;
@@ -3758,7 +3769,6 @@ http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_1
                                $f->type = $this->_types[$k];
                                $f->max_length = -1;
                                $this->_fieldobjects[] = $f;
-                               
                        }
                        $this->fields = reset($this->_array);
                        
index b6b5379..4b62eb8 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 2ae7d93..21191b3 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 483ff42..6598d95 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index c9bf0e0..fc5ba76 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index be20613..163ba81 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 40818e5..879813b 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index d5d0942..5737c27 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 338e286..a4af25f 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 2cdd87d..edc06ad 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
@@ -199,6 +199,14 @@ end;
                        $seqname = $this->seqPrefix.$tabname;
                        $trigname = $this->trigPrefix.$seqname;
                }
+               
+               if (strlen($seqname) > 30) {
+                       $seqname = $this->seqPrefix.uniqid('');
+               } // end if
+               if (strlen($trigname) > 30) {
+                       $trigname = $this->trigPrefix.uniqid('');
+               } // end if
+
                if (isset($tableoptions['REPLACE'])) $sql[] = "DROP SEQUENCE $seqname";
                $seqCache = '';
                if (isset($tableoptions['SEQUENCE_CACHE'])){$seqCache = $tableoptions['SEQUENCE_CACHE'];}
@@ -282,4 +290,4 @@ end;
                return  "COMMENT ON COLUMN $table.$col IS $cmt";
        }
 }
-?>
+?>
\ No newline at end of file
index c101c3c..f95c90e 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 144d81c..9b539ef 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.50 6 July 2004  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.50 6 July 2004  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index e9fd86f..4d21502 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 1c68b36..9a809be 100644 (file)
@@ -14,7 +14,7 @@ font-family: Arial, Helvetica, sans-serif ;
 <title>ADOdb Active Record</title>
 <body>
 <h1>ADOdb Active Record</h1>
-<p> (c) 2000-2006 John Lim (jlim#natsoft.com)</p>
+<p> (c) 2000-2007 John Lim (jlim#natsoft.com)</p>
 <p><font size="1">This software is dual licensed using BSD-Style and LGPL. This 
   means you can use it in compiled proprietary and commercial products.</font></p>
 <p><hr>
@@ -414,6 +414,10 @@ $activeRecArr = $db->GetActiveRecordsClass($className,$tableName, 'name LIKE ?',
 
 </ol>
 
+<h3><li>ADOConnection::ErrorMsg()</h3>
+<p>Returns last error message.
+<h3><li>ADOConnection::ErrorNo()</h3>
+<p>Returns last error number.
 <h2>Code Sample</h2>
 <p>The following works with PHP4 and PHP5
 <pre>
@@ -497,6 +501,14 @@ echo "&lt;p>Name first (should be John): ",$person->name_first, "&lt;br>Class =
  <p>PHP5 specific: Change PHP5 implementation of Active Record to use __get() and __set() for better performance.
 
 <h3> Change Log</h3>
+<p>0.07
+<p>$ADODB_ASSOC_CASE=2 did not work properly. Fixed.
+<p>Added === check in ADODB_SetDatabaseAdapter for $db, adodb-active-record.inc.php. Thx Christian Affolter.
+
+<p>0.06
+<p>Added ErrorNo().
+<p>Fixed php 5.2.0 compat issues.
 <p>0.05
 <p>If inserting a record and the value of a primary key field is null, then we do not insert that field in as
 we assume it is an auto-increment field. Needed by mssql.
index 077b661..69c94e5 100644 (file)
@@ -15,7 +15,7 @@ pre {
 <body bgcolor="#ffffff" text="black">
 
 <h2>ADOdb Library for PHP</h2>
-<p>V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com)</p>
+<p>V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com)</p>
 <p><font size="1">This software is dual licensed using BSD-Style and LGPL. This 
   means you can use it in compiled proprietary and commercial products.</font></p>
   
@@ -59,7 +59,7 @@ pre {
   <a href="#adodb_cache_dir">$ADODB_CACHE_DIR</a> <br>
   &nbsp; &nbsp; &nbsp; &nbsp;  <a href="#force_type">$ADODB_FORCE_TYPE</a> 
   <a href="#adodb_fetch_mode">$ADODB_FETCH_MODE</a> 
-  <a href="#adodb_lang">$ADODB_LANG</a> <br>
+  <a href="#adodb_lang">$ADODB_LANG</a> <a href=#adodb_auto_quote>ADODB_QUOTE_FIELDNAMES</a> <br>
   Constants: </font><font size="2"><a href="#adodb_assoc_case">ADODB_ASSOC_CASE</a> 
   </font><br>
   <a href="#ADOConnection"><b> ADOConnection</b></a><br>
@@ -79,7 +79,7 @@ pre {
   (oci8 only)<br>
   Generates SQL strings: <a href="#getupdatesql">GetUpdateSQL</a> <a href="#getinsertsql">GetInsertSQL</a> 
   <a href="#concat">Concat</a> <a href="#ifnull">IfNull</a> <a href="#length">length</a> <a href="#random">random</a> <a href="#substr">substr</a> 
-  <a href="#qstr">qstr</a> <a href="#param">Param</a>  <a href="#OffsetDate">OffsetDate</a> <a href="#SQLDate">SQLDate</a> 
+  <a href="#qstr">qstr</a> <a href="#param">Param</a>  <a href="#OffsetDate">OffsetDate</a> <a href="#sqldate">SQLDate</a> 
   <a href="#dbdate">DBDate</a>  <a href="#dbtimestamp">DBTimeStamp</a>
   <a href="#binddate">BindDate</a>  <a href="#bindtimestamp">BindTimeStamp</a>
   <br>
@@ -1516,9 +1516,8 @@ in adodb/lang/adodb-$lang.inc.php, where $lang is the supported langauge.
   The recordset saves this value on creation (eg. in Execute( ) or SelectLimit( 
   )), and any subsequent changes to $ADODB_FETCH_MODE have no affect on existing 
   recordsets, only on recordsets created in the future.</font></p>
-<p><font>The following constants are defined:</font></p>
-<p><font>define('ADODB_FETCH_DEFAULT',0);<br>
+ <p><font>The following constants are defined:</font></p>
+ <p><font>define('ADODB_FETCH_DEFAULT',0);<br>
   define('ADODB_FETCH_NUM',1);<br>
   define('ADODB_FETCH_ASSOC',2);<br>
   define('ADODB_FETCH_BOTH',3); </font></p>
@@ -1559,7 +1558,11 @@ connection, then use <a href="#setfetchmode">SetFetchMode</a>.
        include('adodb.inc.php'); </font></p>
 <h3><font><a name="force_type"></a>$ADODB_FORCE_TYPE</font></h3>
 <p><font>See the <a href="#ADODB_FORCE_TYPE">GetUpdateSQL tutorial</a>.
-</font></p><hr />
+</font></p>
+<h3><font><a name="adodb_auto_quote"></a>$ADODB_QUOTE_FIELDNAMES</font></h3>
+<p><font>Auto-quotes field names when using AutoExecute() when set to true. </font>
+<p>&nbsp;</p>
+<hr />
 <h2><font>ADOConnection<a name="adoconnection"></a></font></h2>
 <p><font>Object that performs the connection to the database, executes SQL statements 
        and has a set of utility functions for standardising the format of SQL statements 
@@ -1865,7 +1868,7 @@ $conn->IgnoreErrors($saveErrHandlers);
        If you do not pass in an oid, then UpdateBlob() assumes that you are storing 
        in bytea fields.
        <p>If you do not have any blob fields, you can improve you can improve general SQL query performance by disabling blob handling with $connection->disableBlobs = true.
-</font></p><p><font><b>UpdateClob<a name="updateclob"></a>($table,$column,$val,$where)</b></font></p>
+</p></font><p><font><b>UpdateClob<a name="updateclob"></a>($table,$column,$val,$where)</b></font></p>
 <font>Allows you to store a clob (in $val) into $table into $column in a row at $where. 
 Similar to UpdateBlob (see above), but for Character Large OBjects. 
 </font><p><font> Usage:
@@ -1949,6 +1952,7 @@ contains keys that are invalid field names for $table, they are ignored. There i
 query the database to get the field names, but given that you are not directly coding the SQL yourself, you probably aren't interested in
 speed at all, but convenience.
 <p>Since 4.62, the table name to be used can be overridden by setting $rs->tableName before AutoExecute(), GetInsertSQL() or GetUpdateSQL() is called.
+<p>Since 4.94, setting the global variable $ADODB_QUOTE_FIELDNAMES to true will force field names to be auto-quoted in AutoExecute(), GetInsertSQL() and GetUpdateSQL(). </p>
 <p><font><b>GetUpdateSQL<a name="getupdatesql"></a>(&amp;$rs, $arrFields, $forceUpdate=false,$magicq=false, $force=null)</b></font></p>
 <p><font>Generate SQL to update a table given a recordset $rs, and the modified fields 
        of the array $arrFields (which must be an associative array holding the column 
@@ -1960,7 +1964,7 @@ speed at all, but convenience.
 <font> </font><p><font>Since 4.52, we allow you to pass the $force type parameter, and this overrides the <a href="#ADODB_FORCE_TYPE">$ADODB_FORCE_TYPE</a>
        global variable.
 <p>Since 4.62, the table name to be used can be overridden by setting $rs->tableName before AutoExecute(), GetInsertSQL() or GetUpdateSQL() is called.
-</font></p><p><font><b>GetInsertSQL<a name="getinsertsql"></a>(&amp;$rs, $arrFields,$magicq=false,$force_type=false)</b></font></p>
+</p></font><p><font><b>GetInsertSQL<a name="getinsertsql"></a>(&amp;$rs, $arrFields,$magicq=false,$force_type=false)</b></font></p>
 <p><font>Generate SQL to insert into a table given a recordset $rs. Requires the query 
        to be associative. $magicq is used to indicate whether magic quotes are enabled 
        (for qstr()). The field names in the array are case-insensitive.</font></p>
@@ -1970,7 +1974,7 @@ GetInsertSQL (in $rs), and it will generate an insert statement for that table.
 </font></p><p><font>Since 4.52, we allow you to pass the $force_type parameter, and this overrides the <a href="#ADODB_FORCE_TYPE">$ADODB_FORCE_TYPE</a>
        global variable.
 <p>Since 4.62, the table name to be used can be overridden by setting $rs->tableName before AutoExecute(), GetInsertSQL() or GetUpdateSQL() is called.
-</font></p><p><font><b>PageExecute<a name="pageexecute"></a>($sql, $nrows, $page, $inputarr=false)</b> 
+</p></font><p><font><b>PageExecute<a name="pageexecute"></a>($sql, $nrows, $page, $inputarr=false)</b> 
 </font></p><p><font>Used for pagination of recordset. $page is 1-based. See <a href="#ex8">Example 
   8</a>.</font></p>
  
@@ -2613,7 +2617,7 @@ by a global array, which might need localisation).</font></p>
 <font> 
 </font><p><font>This function is available in both ADORecordSet
     and ADOConnection since 1.91. </font></p>
-<p><font><b>OffsetDate<a name="offsetdate"></a>($dayFraction,
+<p><font><b>OffsetDate<a name="OffsetDate"></a>($dayFraction,
   $basedate=false)</b></font></p>
 <p><font>Returns a string with the native SQL functions to calculate
     future and past dates based on $basedate in a portable fashion. If $basedate
@@ -2920,6 +2924,52 @@ of MySQL.</font></p>
   PHP</a>. </font></p>
 
 <h2><font>Change Log<a name="Changes"></a><a name="changes"></a><a name="changelog"></a></font></h2>
+
+<p><a name="4.94"></a><b>4.94 23 Jan 2007</b>
+<p>Active Record: $ADODB_ASSOC_CASE=2 did not work properly. Fixed. Thx gmane#auxbuss.com.
+<p>mysqli had bugs in BeginTrans() and EndTrans(). Fixed.</p>
+<p>Improved error handling when no database is connected for oci8. Thx Andy Hassall.</p>
+<p>Names longer than 30 chars in oci8 datadict will be changed to random name. Thx Eugenio. http://phplens.com/lens/lensforum/msgs.php?id=16182
+<p>Added var $upperCase = 'ucase' to access and ado_access drivers. Thx Renato De Giovanni renato#cria.org.br</p>
+<p>Postgres64 driver, if preparing plan failed in _query, did not handle error properly. Fixed. See http://phplens.com/lens/lensforum/msgs.php?id=16131.
+<p>Fixed  GetActiveRecordsClass() reference bug. See http://phplens.com/lens/lensforum/msgs.php?id=16120
+<p>
+
+Added handling of nulls in adodb-ado_mssql.inc.php for qstr(). Thx to Felix Rabinovich.
+<p>
+
+Adodb-dict contributions by Gaetano:
+<br>
++ Support for INDEX in data-dict. Example:
+idx_ev1. The ability to define indexes using the INDEX keyword was added in ADOdb 4.94. The following example features mutiple indexes, including a compound index idx_ev1. 
+<pre>
+  event_id I(11) NOTNULL AUTOINCREMENT PRIMARY,
+  event_type I(4) NOTNULL  <b>INDEX idx_evt</b>,
+  event_start_date T DEFAULT NULL <b>INDEX id_esd</b>,
+  event_end_date T DEFAULT '0000-00-00 00:00:00' <b>INDEX id_eted</b>,
+  event_parent I(11) UNSIGNED NOTNULL DEFAULT 0 <b>INDEX id_evp</b>,
+  event_owner I(11) DEFAULT 0 <b>INDEX idx_ev1</b>,
+  event_project I(11) DEFAULT 0 <b>INDEX idx_ev1</b>,
+  event_times_recuring I(11) UNSIGNED NOTNULL DEFAULT 0,
+  event_icon C(20) DEFAULT 'obj/event',
+  event_description X
+</pre>
+<br>
++ Prevents the generated SQL from including double drop-sequence statements for REPLACE case of tables with autoincrement columns (on those dbs that emulate it via sequences)
+<br>
++ makes any date defined as DEFAULT value for D and T columns work cross-database, not just the "sysdate" value (as long as it is specified using adodb standard format). See above example.
+<p>Fixed pdo's GetInsertID() support. Thx Ricky Su.
+<p>oci8 Prepare() now sets error messages if an error occurs.
+<p>Added 'PT_BR' to SetDateLocale() -- brazilian portugese.
+<p>charset in oci8 was not set correctly on *Connect()
+<p>ADOConnection::Transpose() now appends as first column the field names.
+<p>Added $ADODB_QUOTE_FIELDNAMES. If set to true, will autoquote field names in AutoExecute(),GetInsertSQL(), GetUpdateSQL().
+<p>Transpose now adds the field names as the first column after transposition.
+<p>Added === check in ADODB_SetDatabaseAdapter for $db, adodb-active-record.inc.php. Thx Christian Affolter.
+<p>Added ErrorNo() to adodb-active-record.inc.php. Thx ante#novisplet.com.
+
+
+
 <p><a name="4.93"></a><b>4.93 10 Oct 2006</b>
 <p>Added support for multiple database connections in performance monitoring code (adodb-perf.inc.php). Now all sql in multiple database connections can be saved into one database ($ADODB_LOG_CONN).
 <p>Added MetaIndexes() to odbc_mssql.
@@ -2930,11 +2980,13 @@ of MySQL.</font></p>
 <p>Patched postgres64 _connect to handle serverinfo(). see http://phplens.com/lens/lensforum/msgs.php?id=15887.
 <p>Added pdo fix for null columns. See http://phplens.com/lens/lensforum/msgs.php?id=15889
 <p>For stored procedures, missing connection id now passed into mssql_query(). Thx Ecsy (ecsy#freemail.hu).
+
 <p><a name="4.92a"></a><b>4.92a 30 Aug 2006</b>
 <p>Syntax error in postgres7 driver. Thx Eloy Lafuente Plaza. 
 <p>Minor bug fixes - adodb informix 10 types added to adodb.inc.php. Thx Fernando Ortiz.
 
 <p><a name="4.92"></a><b>4.92 29 Aug 2006</b>
+
 <p>Better odbtp date support.
 <P>Added IgnoreErrors() to bypass default error handling.
 <p>The _adodb_getcount() function in adodb-lib.inc.php, some ORDER BY bug fixes.
index 28a5515..6bc19f8 100644 (file)
@@ -20,7 +20,7 @@
 </head>
 <body style="background-color: rgb(255, 255, 255);">
 <h2>ADOdb Data Dictionary Library for PHP</h2>
-<p>V4.93 10 Oct 2006 (c) 2000-2006 John Lim (<a
+<p>V4.94 23 Jan 2007 (c) 2000-2007 John Lim (<a
  href="mailto:jlim#natsoft.com.my">jlim#natsoft.com.my</a>).<br>
 AXMLS (c) 2004 ars Cognita, Inc</p>
 <p><font size="1">This software is dual licensed using BSD-Style and
@@ -48,6 +48,25 @@ generic ODBC.
  color="#006600"># We have a portable declarative data dictionary format in ADOdb, similar to SQL.<br>  # Field types use 1 character codes, and fields are separated by commas.<br>  # The following example creates three fields: "col1", "col2" and "col3":</font><br>  $flds = " <br>  <font
  color="#663300"><strong> col1 C(32) NOTNULL DEFAULT 'abc',<br>   col2 I  DEFAULT 0,<br>   col3 N(12.2)</strong></font><br>  ";<br><br>  <font
  color="#006600"># We demonstrate creating tables and indexes</font><br>  $sqlarray = $dict-&gt;<strong>CreateTableSQL</strong>($tabname, $flds, $taboptarray);<br>  $dict-&gt;<strong>ExecuteSQLArray</strong>($sqlarray);<br><br>  $idxflds = 'co11, col2';<br>  $sqlarray = $dict-&gt;<strong>CreateIndexSQL</strong>($idxname, $tabname, $idxflds);<br>  $dict-&gt;<strong>ExecuteSQLArray</strong>($sqlarray);<br></pre>
+<h3>More Complex Table Sample</h3>
+<p>
+The following string will create a table with a primary key event_id and multiple indexes, including one compound index idx_ev1. The ability to define indexes using the INDEX keyword was added in ADOdb 4.94 by Gaetano Giunta.
+<pre>
+$flds = "
+  event_id I(11) NOTNULL AUTOINCREMENT PRIMARY,
+  event_type I(4) NOTNULL  <b>INDEX idx_evt</b>,
+  event_start_date T DEFAULT NULL <b>INDEX id_esd</b>,
+  event_end_date T DEFAULT '0000-00-00 00:00:00' <b>INDEX id_eted</b>,
+  event_parent I(11) UNSIGNED NOTNULL DEFAULT 0 <b>INDEX id_evp</b>,
+  event_owner I(11) DEFAULT 0 <b>INDEX idx_ev1</b>,
+  event_project I(11) DEFAULT 0 <b>INDEX idx_ev1</b>,
+  event_times_recuring I(11) UNSIGNED NOTNULL DEFAULT 0,
+  event_icon C(20) DEFAULT 'obj/event',
+  event_description X
+";
+$sqlarray = $db-><b>CreateTableSQL</b>($tablename, $flds);
+$dict-><b>ExecuteSQLArray</b>($sqlarray);
+</pre>
 <h3>Class Factory</h3>
 <h4>NewDataDictionary($connection, $drivername=false)</h4>
 <p>Creates a new data dictionary object. You pass a database connection object in $connection. The $connection does not have to be actually connected to the database. Some database connection objects are generic (eg. odbtp and odbc). Since 4.53, you can tell ADOdb  the actual database with $drivername. E.g.</p>
index ed055b4..cef8db5 100644 (file)
@@ -18,7 +18,7 @@ font-size: 8pt;
 </head>
 <body>
 <h3>The ADOdb Performance Monitoring Library</h3>
-<p>V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my)</p>
+<p>V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my)</p>
 <p><font size="1">This software is dual licensed using BSD-Style and
 LGPL. This means you can use it in compiled proprietary and commercial
 products.</font></p>
index ea8de54..e6bfb76 100644 (file)
@@ -21,7 +21,7 @@ font-size: 8pt;
 <body style="background-color: rgb(255, 255, 255);">
 <h1>ADODB Session 2 Management Manual</h1>
 <p>
-V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my)
+V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my)
 </p>
 <p> <font size="1">This software is dual licensed using BSD-Style and
 LGPL. This means you can use it in compiled proprietary and commercial
index bb99f4b..0a3251d 100644 (file)
@@ -21,7 +21,7 @@ font-size: 8pt;
 <body style="background-color: rgb(255, 255, 255);">
 <h3>ADODB Session Management Manual</h3>
 <p>
-V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my)
+V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my)
 </p>
 <p> <font size="1">This software is dual licensed using BSD-Style and
 LGPL. This means you can use it in compiled proprietary and commercial
index a37ba51..0b2cb2b 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt. 
@@ -27,6 +27,7 @@ class  ADODB_access extends ADODB_odbc {
        var $sysDate = "FORMAT(NOW,'yyyy-mm-dd')";
        var $sysTimeStamp = 'NOW';
        var $hasTransactions = false;
+       var $upperCase = 'ucase';
        
        function ADODB_access()
        {
index 027fa32..4d730f2 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 8131619..a0e2e3e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 44dc982..ab83e26 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt. 
@@ -27,6 +27,7 @@ class  ADODB_ado_access extends ADODB_ado {
        var $sysDate = "FORMAT(NOW,'yyyy-mm-dd')";
        var $sysTimeStamp = 'NOW';
        var $hasTransactions = false;
+       var $upperCase = 'ucase';
        
        function ADODB_ado_access()
        {
index 6926706..576223d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
@@ -65,6 +65,12 @@ class  ADODB_ado_mssql extends ADODB_ado {
                $this->Execute("SET TRANSACTION ".$transaction_mode);
        }
        
+       function qstr($s,$magic_quotes=false)
+       {
+               $s = ADOConnection::qstr($s, $magic_quotes);
+               return str_replace("\0", "\\\\000", $s);
+       }
+       
        function MetaColumns($table)
        {
         $table = strtoupper($table);
index a5e748b..ab15fef 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index bbd4e61..a977416 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 964a266..9c1882d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-  V4.93 10 Oct 2006  (c) 2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2006 John Lim (jlim#natsoft.com.my). All rights reserved.
 
   This is a version of the ADODB driver for DB2.  It uses the 'ibm_db2' PECL extension
   for PHP (http://pecl.php.net/package/ibm_db2), which in turn requires DB2 V8.2.2 or
index 0f05226..6a19bc2 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
- @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ @version V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index f3d7a13..9b7b59e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index efd8a0c..335493d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.  
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 52b2cf6..eed00b0 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
-* @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+* @version V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index c02a471..3bf65ef 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim. All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim. 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.
index c4137cd..bbf0cbf 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 53e6d95..8eebd91 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 5e7ae1f..df48286 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
-* @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+* @version V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 8e79d4a..14d288e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
@@ -628,13 +628,13 @@ class ADORecordSet_mysql extends ADORecordSet{
                if ($fieldOffset != -1) {
                        $o = @mysql_fetch_field($this->_queryID, $fieldOffset);
                        $f = @mysql_field_flags($this->_queryID,$fieldOffset);
-                       $o->max_length = @mysql_field_len($this->_queryID,$fieldOffset); // suggested by: Jim Nicholson (jnich@att.com)
+                       $o->max_length = @mysql_field_len($this->_queryID,$fieldOffset); // suggested by: Jim Nicholson (jnich#att.com)
                        //$o->max_length = -1; // mysql returns the max length less spaces -- so it is unrealiable
                        $o->binary = (strpos($f,'binary')!== false);
                }
                else if ($fieldOffset == -1) {  /*      The $fieldOffset argument is not provided thus its -1   */
                        $o = @mysql_fetch_field($this->_queryID);
-               $o->max_length = @mysql_field_len($this->_queryID); // suggested by: Jim Nicholson (jnich@att.com)
+               $o->max_length = @mysql_field_len($this->_queryID); // suggested by: Jim Nicholson (jnich#att.com)
                //$o->max_length = -1; // mysql returns the max length less spaces -- so it is unrealiable
                }
                        
index 415ae2b..00b53cc 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
@@ -138,6 +138,18 @@ class ADODB_mysqli extends ADOConnection {
                return " IFNULL($field, $ifNull) "; // if MySQL
        }
        
+       // do not use $ADODB_COUNTRECS
+       function GetOne($sql,$inputarr=false)
+       {
+               $ret = false;
+               $rs = &$this->Execute($sql,$inputarr);
+               if ($rs) {      
+                       if (!$rs->EOF) $ret = reset($rs->fields);
+                       $rs->Close();
+               }
+               return $ret;
+       }
+       
        function ServerInfo()
        {
                $arr['description'] = $this->GetOne("select version()");
@@ -150,7 +162,9 @@ class ADODB_mysqli extends ADOConnection {
        {         
                if ($this->transOff) return true;
                $this->transCnt += 1;
-               $this->Execute('SET AUTOCOMMIT=0');
+               
+               //$this->Execute('SET AUTOCOMMIT=0');
+               mysqli_autocommit($this->_connectionID, false);
                $this->Execute('BEGIN');
                return true;
        }
@@ -162,7 +176,9 @@ class ADODB_mysqli extends ADOConnection {
                
                if ($this->transCnt) $this->transCnt -= 1;
                $this->Execute('COMMIT');
-               $this->Execute('SET AUTOCOMMIT=1');
+               
+               //$this->Execute('SET AUTOCOMMIT=1');
+               mysqli_autocommit($this->_connectionID, true);
                return true;
        }
        
@@ -171,7 +187,8 @@ class ADODB_mysqli extends ADOConnection {
                if ($this->transOff) return true;
                if ($this->transCnt) $this->transCnt -= 1;
                $this->Execute('ROLLBACK');
-               $this->Execute('SET AUTOCOMMIT=1');
+               //$this->Execute('SET AUTOCOMMIT=1');
+               mysqli_autocommit($this->_connectionID, true);
                return true;
        }
        
index 715d693..9f1b53a 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index d03fab9..eedf51d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
  
   First cut at the Netezza Driver by Josh Eldridge joshuae74#hotmail.com
  Based on the previous postgres drivers.
index ebca543..7b2ca2d 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
 
-  version V4.93 10 Oct 2006 (c) 2000-2006 John Lim. All rights reserved.
+  version V4.94 23 Jan 2007 (c) 2000-2007 John Lim. All rights reserved.
 
   Released under both BSD license and Lesser GPL library license. 
   Whenever there is any discrepancy between the two licenses, 
@@ -211,22 +211,22 @@ NATSOFT.DOMAIN =
                //if ($argHostname) print "<p>Connect: 1st argument should be left blank for $this->databaseType</p>";
                if ($mode==1) {
                        $this->_connectionID = ($this->charSet) ? 
-                               OCIPLogon($argUsername,$argPassword, $argDatabasename)
+                               OCIPLogon($argUsername,$argPassword, $argDatabasename,$this->charSet)
                                :
-                               OCIPLogon($argUsername,$argPassword, $argDatabasename, $this->charSet)
+                               OCIPLogon($argUsername,$argPassword, $argDatabasename)
                                ;
                        if ($this->_connectionID && $this->autoRollback)  OCIrollback($this->_connectionID);
                } else if ($mode==2) {
                        $this->_connectionID = ($this->charSet) ? 
-                               OCINLogon($argUsername,$argPassword, $argDatabasename)
+                               OCINLogon($argUsername,$argPassword, $argDatabasename,$this->charSet)
                                :
-                               OCINLogon($argUsername,$argPassword, $argDatabasename, $this->charSet);
+                               OCINLogon($argUsername,$argPassword, $argDatabasename);
                                
                } else {
                        $this->_connectionID = ($this->charSet) ? 
-                               OCILogon($argUsername,$argPassword, $argDatabasename)
+                               OCILogon($argUsername,$argPassword, $argDatabasename,$this->charSet)
                                :
-                               OCILogon($argUsername,$argPassword, $argDatabasename,$this->charSet);
+                               OCILogon($argUsername,$argPassword, $argDatabasename);
                }
                if (!$this->_connectionID) return false;
                if ($this->_initdate) {
@@ -434,10 +434,10 @@ NATSOFT.DOMAIN =
        {
                if ($this->_errorMsg !== false) return $this->_errorMsg;
 
-               if (is_resource($this->_stmt)) $arr = @OCIerror($this->_stmt);
+               if (is_resource($this->_stmt)) $arr = @OCIError($this->_stmt);
                if (empty($arr)) {
-                       $arr = @OCIerror($this->_connectionID);
-                       if ($arr === false) $arr = @OCIError();
+                       if (is_resource($this->_connectionID)) $arr = @OCIError($this->_connectionID);
+                       else $arr = @OCIError();
                        if ($arr === false) return '';
                }
                $this->_errorMsg = $arr['message'];
@@ -783,8 +783,17 @@ NATSOFT.DOMAIN =
        
                $stmt = OCIParse($this->_connectionID,$sql);
 
-               if (!$stmt) return false;
-
+               if (!$stmt) {
+                       $this->_errorMsg = false;
+                       $this->_errorCode = false;
+                       $arr = @OCIError($this->_connectionID);
+                       if ($arr === false) return false;
+               
+                       $this->_errorMsg = $arr['message'];
+                       $this->_errorCode = $arr['code'];
+                       return false;
+               }
+               
                $BINDNUM += 1;
                
                $sttype = @OCIStatementType($stmt);
@@ -1374,10 +1383,11 @@ class ADORecordset_oci8 extends ADORecordSet {
                        $arr =& $this->GetArray($nrows);
                        return $arr;
                }
+               $arr = array();
                for ($i=1; $i < $offset; $i++) 
-                       if (!@OCIFetch($this->_queryID)) return array();
+                       if (!@OCIFetch($this->_queryID)) return $arr;
                        
-               if (!@OCIfetchinto($this->_queryID,$this->fields,$this->fetchMode)) return array();
+               if (!@OCIfetchinto($this->_queryID,$this->fields,$this->fetchMode)) return $arr;;
                $results = array();
                $cnt = 0;
                while (!$this->EOF && $nrows != $cnt) {
index 4073b60..8da0ba1 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /** 
- * @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.94 23 Jan 2007 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index dc75c79..2432f39 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim. All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim. 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.
index 370ab55..d8b8f18 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
@@ -513,11 +513,6 @@ See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/od
                                        $this->_errorMsg = odbc_errormsg();
                                        $this->_errorCode = odbc_error();
                                }
-                               if($this->_errorCode == '00000') {      // MS SQL Server sometimes returns this in combination with the FreeTDS
-                                       $this->_errorMsg = '';          // driver and UnixODBC under Linux. This fixes the bogus "error"
-                                       $this->_errorCode = 0;          // <karsten@typo3.org>
-                                       return true;
-                               }
                                return false;
                        }
                
@@ -529,11 +524,6 @@ See http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odbc/htm/od
                                        $this->_errorMsg = odbc_errormsg();
                                        $this->_errorCode = odbc_error();
                                }
-                               if($this->_errorCode == '00000') {      // MS SQL Server sometimes returns this in combination with the FreeTDS
-                                       $this->_errorMsg = '';          // driver and UnixODBC under Linux. This fixes the bogus "error"
-                                       $this->_errorCode = 0;          // <karsten@typo3.org>
-                                       return true;
-                               }
                                return false;
                        }
                } else
index 7a728ca..3ae91d7 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 3b57bc5..2181739 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 9b3e540..cb29f0b 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 402b226..6f52ae7 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt.
@@ -149,13 +149,14 @@ class ADODB_odbtp extends ADOConnection{
        //if uid & pwd can be separate
     function _connect($HostOrInterface, $UserOrDSN='', $argPassword='', $argDatabase='')
        {
-               $this->_connectionID = @odbtp_connect($HostOrInterface,$UserOrDSN,$argPassword,$argDatabase);
-               odbtp_convert_datetime($this->_connectionID,true);
-               
+               $this->_connectionID = odbtp_connect($HostOrInterface,$UserOrDSN,$argPassword,$argDatabase);
                if ($this->_connectionID === false) {
                        $this->_errorMsg = $this->ErrorMsg() ;
                        return false;
                }
+               
+               odbtp_convert_datetime($this->_connectionID,true);
+               
                if ($this->_dontPoolDBC) {
                        if (function_exists('odbtp_dont_pool_dbc'))
                                @odbtp_dont_pool_dbc($this->_connectionID);
@@ -217,6 +218,7 @@ class ADODB_odbtp extends ADOConnection{
                                $this->replaceQuote = "'+chr(39)+'";
                                $this->true = '.T.';
                                $this->false = '.F.';
+
                                break;
                        case 'oracle':
                                $this->databaseType = 'odbtp_oci8';
@@ -288,7 +290,7 @@ class ADODB_odbtp extends ADOConnection{
                for ($i=0; $i < sizeof($arr); $i++) {
                        if ($arr[$i][3] == 'SYSTEM TABLE' )     continue;
                        if ($arr[$i][2])
-                               $arr2[] = $showSchema ? $arr[$i][1].'.'.$arr[$i][2] : $arr[$i][2];
+                               $arr2[] = $showSchema && $arr[$i][1]? $arr[$i][1].'.'.$arr[$i][2] : $arr[$i][2];
                }
                return $arr2;
        }
@@ -324,10 +326,11 @@ class ADODB_odbtp extends ADOConnection{
                                $fld->max_length = $rs->fields[6];
                        $fld->not_null = !empty($rs->fields[9]);
                                $fld->scale = $rs->fields[7];
-                               if (!is_null($rs->fields[12])) {
-                                       $fld->has_default = true;
-                                       $fld->default_value = $rs->fields[12];
-                               }
+                               if (isset($rs->fields[12])) // vfp does not have field 12
+                                       if (!is_null($rs->fields[12])) {
+                                               $fld->has_default = true;
+                                               $fld->default_value = $rs->fields[12];
+                                       }
                                $retarr[strtoupper($fld->name)] = $fld;
                        } else if (!empty($retarr))
                                break;
@@ -547,7 +550,7 @@ class ADODB_odbtp extends ADOConnection{
                                return false;
                        }
                } else {
-                       $stmtid = @odbtp_query($sql,$this->_connectionID);
+                       $stmtid = odbtp_query($sql,$this->_connectionID);
                }
                $this->_lastAffectedRows = 0;
                if ($stmtid) {
@@ -642,6 +645,12 @@ class ADORecordSet_odbtp extends ADORecordSet {
             default:
                                $this->fields = @odbtp_fetch_array($this->_queryID, $type);
                }
+               if ($this->databaseType = 'odbtp_vfp') {
+                       if ($this->fields)
+                       foreach($this->fields as $k => $v) {
+                               if (strncmp($v,'1899-12-30',10) == 0) $this->fields[$k] = '';
+                       }
+               }
                return is_array($this->fields);
        }
 
index 2a8b44d..ff79373 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-       V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+       V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt.
index 5329770..3c6dbd3 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 3460349..e3f77f1 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
@@ -133,7 +133,12 @@ class ADODB_pdo extends ADOConnection {
                $this->random = $d->random;
                $this->concat_operator = $d->concat_operator;
                $this->nameQuote = $d->nameQuote;
-               
+                               
+               $this->hasGenID = $d->hasGenID;
+               $this->_genIDSQL = $d->_genIDSQL;
+               $this->_genSeqSQL = $d->_genSeqSQL;
+               $this->_dropSeqSQL = $d->_dropSeqSQL;
+
                $d->_init($this);
        }
        
index cdfcaae..9470dd8 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index fc803b7..b80241d 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index ebfd4a3..9d40f14 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 5c0c531..e802d79 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 4dd3f82..5e8ce48 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
- V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 270ccd7..69d44fc 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
- V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
@@ -770,11 +770,11 @@ WHERE (c2.relname=\'%s\' or c2.relname=lower(\'%s\'))';
                                }
                                $s = "PREPARE $plan ($params) AS ".substr($sql,0,strlen($sql)-2);               
                                //adodb_pr($s);
-                               pg_exec($this->_connectionID,$s);
+                               $rez = pg_exec($this->_connectionID,$s);
                                //echo $this->ErrorMsg();
                        }
-                       
-                       $rez = pg_exec($this->_connectionID,$exsql);
+                       if ($rez)
+                               $rez = pg_exec($this->_connectionID,$exsql);
                } else {
                        //adodb_backtrace();
                        $rez = pg_exec($this->_connectionID,$sql);
index 83b225c..5c3d7bb 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
- V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index ab364a7..f3712a3 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
- V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 82af449..022a64e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 53c74b4..493893e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 206e1e1..88af3ae 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-version V4.93 10 Oct 2006 (c) 2000-2006  John Lim (jlim#natsoft.com.my).  All rights
+version V4.94 23 Jan 2007 (c) 2000-2007  John Lim (jlim#natsoft.com.my).  All rights
 reserved.
   Released under both BSD license and Lesser GPL library license. 
   Whenever there is any discrepancy between the two licenses, 
index 8f93fda..665cc54 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index b46fc9e..dbd0271 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 023534e..ba6b919 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim. All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim. 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. 
index 02e4757..9b5334d 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 4f15f42..034eee2 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 1efd9b5..6f3a417 100644 (file)
@@ -1,4 +1,4 @@
-<?php
+<?php
 /*
        Bulgarian language, v1.0, 25.03.2004, encoding by UTF-8 charset
        contributed by Valentin Sheiretsky <valio#valio.eu.org>
index 5b5ef11..9c8e772 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt. 
index dd82708..d5e4757 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt. 
index f652c76..f2dfa7b 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt. 
index 062e2a2..50639d9 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt. 
index 48fbcd8..a4bcda6 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt. 
index 37656a6..da41ebe 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /* 
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. See License.txt. 
index 3c22f38..f159f8e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /** 
- * @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.93 10 Oct 2006 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index b1106c0..41a1ea9 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /** 
- * @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.93 10 Oct 2006 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index c2cec67..525b41e 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /** 
- * @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.93 10 Oct 2006 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 2ecc46d..79c3823 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
          Contributed by Ross Smith (adodb@netebb.com). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
index ead02c0..da8d3d4 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
          Contributed by Ross Smith (adodb@netebb.com). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
index eb70927..ddf619d 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
          Contributed by Ross Smith (adodb@netebb.com). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
index 06d2ecf..6334eaf 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
          Contributed by Ross Smith (adodb@netebb.com). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
index b6cdd41..a047579 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
          Contributed by Ross Smith (adodb@netebb.com). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
index 4ee5120..24caa66 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
          Contributed by Ross Smith (adodb@netebb.com). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
index 07e10c2..cc7e2fb 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
          Contributed by Ross Smith (adodb@netebb.com). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
index 0a19366..a2cd480 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
          Contributed by Ross Smith (adodb@netebb.com). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
index b684533..54b8043 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
          Contributed by Ross Smith (adodb@netebb.com). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
index 474548a..f0054ef 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
          Contributed by Ross Smith (adodb@netebb.com). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
index a773aa0..c5932b6 100644 (file)
@@ -2,7 +2,7 @@
 
 
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). All rights reserved.
          Contributed by Ross Smith (adodb@netebb.com). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
@@ -769,7 +769,7 @@ class ADODB_Session {
                        
                        $qkey = $conn->qstr($key);
                        $rs2 =& $conn->UpdateBlob($table, 'sessdata', $val, " sesskey=$qkey", strtoupper($clob));
-                       $rs = $conn->CompleteTrans();
+                       $rs = @$conn->CompleteTrans();
                        
                        
                }
index d17f32c..40ce283 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.94 23 Jan 2007  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 370a137..9367bca 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.93 10 Oct 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index c4183de..a4bc8fb 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.93 10 Oct 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 5276dd4..ccdbdce 100644 (file)
@@ -8,7 +8,7 @@
 <body>
 <?php 
 /*
-V4.81 3 May 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.81 3 May 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 2b2c68c..ed7cdb9 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 /*
 
-  V4.81 3 May 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.81 3 May 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
@@ -47,11 +47,11 @@ foreach(array('sapdb','sybase','mysql','access','oci8po','postgres','odbc_mssql'
        
        $flds = "
 ID            I           AUTO KEY,
-FIRSTNAME     VARCHAR(30) DEFAULT 'Joan',
-LASTNAME      VARCHAR(28) DEFAULT 'Chen' key,
+FIRSTNAME     VARCHAR(30) DEFAULT 'Joan' INDEX idx_name,
+LASTNAME      VARCHAR(28) DEFAULT 'Chen' key INDEX idx_name,
 averylonglongfieldname X(1024) DEFAULT 'test',
 price         N(7.2)  DEFAULT '0.00',
-MYDATE        D      DEFDATE,
+MYDATE        D      DEFDATE INDEX idx_date,
 BIGFELLOW     X      NOTNULL,
 TS            T      DEFTIMESTAMP";
 
@@ -62,7 +62,7 @@ TS            T      DEFTIMESTAMP";
        $sqli = ($dict->CreateTableSQL('testtable',$flds, $opts));
        $sqla = array_merge($sqla,$sqli);
        
-       $sqli = $dict->CreateIndexSQL('idx','testtable','firstname,lastname',array('BITMAP','FULLTEXT','CLUSTERED','HASH'));
+       $sqli = $dict->CreateIndexSQL('idx','testtable','price,firstname,lastname',array('BITMAP','FULLTEXT','CLUSTERED','HASH'));
        $sqla = array_merge($sqla,$sqli);
        $sqli = $dict->CreateIndexSQL('idx2','testtable','price,lastname');//,array('BITMAP','FULLTEXT','CLUSTERED'));
        $sqla = array_merge($sqla,$sqli);
index 3fe41fe..f8fb351 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.81 3 May 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.81 3 May 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 95caa33..149c08e 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.80 8 Mar 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
@@ -9,7 +9,9 @@ V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reser
   Latest version is available at http://adodb.sourceforge.net
 */
 
-error_reporting(E_ALL);
+
+if (!defined('E_STRICT')) define('E_STRICT',0);
+error_reporting(E_ALL|E_STRICT);
 
 $ADODB_FLUSH = true;
 
@@ -85,7 +87,7 @@ GLOBAL $ADODB_vers,$ADODB_CACHE_DIR,$ADODB_FETCH_MODE,$ADODB_COUNTRECS;
        $create =false;
        /*$ADODB_FETCH_MODE = ADODB_FETCH_NUM;
        
-       $rs = $db->Execute('select lastname,firstname,lastname,id from adoxyz');
+       $rs = $db->Execute('select lastname,firstname,lastname,id from ADOXYZ');
        $arr = $rs->GetAssoc();
        echo "<pre>";print_r($arr);
        die();*/
@@ -124,13 +126,16 @@ FROM `nuke_stories` `t1`, `nuke_authors` `t2`, `nuke_stories_cat` `t3`, `nuke_to
        if (defined('ADODB_EXTENSION')) $ext = ' &nbsp; Extension '.ADODB_EXTENSION.' installed';
        else $ext = '';
        print "<h3>ADODB Version: $ADODB_vers Host: <i>$db->host</i> &nbsp; Database: <i>$db->database</i> &nbsp; PHP: $phpv $ext</h3>";
+       
        flush();
 
+       if (function_exists('date_default_timezone_set')) date_default_timezone_set('Asia/Kuala_Lumpur');
        
        $arr = $db->ServerInfo();
        print_r($arr);
-       echo "<br>";
-       $e = error_reporting(E_ALL-E_WARNING);
+       echo E_ALL,' ',E_STRICT, "<br>";
+       $e = error_reporting(E_ALL | E_STRICT);
+       echo error_reporting(),'<p>';
        flush();
        #$db->debug=1;
        $tt  = $db->Time(); 
@@ -164,11 +169,11 @@ FROM `nuke_stories` `t1`, `nuke_authors` `t2`, `nuke_stories_cat` `t3`, `nuke_to
                print "<i>Error='$err'</i></p>";
                if ($rez) print "<b>Cannot check if connection failed.</b> The Connect() function returned true.</p>";
        }
-       error_reporting($e);
+       #error_reporting($e);
        flush();
 
        //$ADODB_COUNTRECS=false;
-       $rs=$db->Execute('select * from adoxyz order by id');
+       $rs=$db->Execute('select * from ADOXYZ order by id');
        if($rs === false) $create = true;
        else $rs->Close();
        
@@ -180,24 +185,24 @@ FROM `nuke_stories` `t1`, `nuke_authors` `t2`, `nuke_stories_cat` `t3`, `nuke_to
                        return;
                } else {
                        $db->debug = 99;
-                       $e = error_reporting(E_ALL-E_WARNING);
+               #       $e = error_reporting(E_ALL-E_WARNING);
                        $db->Execute($createtab);
-                       error_reporting($e);
+               #       error_reporting($e);
                }
        }
-       error_reporting(E_ALL);
+       #error_reporting(E_ALL);
        echo "<p>Testing Metatypes</p>";
        $t = $db->MetaType('varchar');
        if ($t != 'C') Err("Bad Metatype for varchar");
        
-       $rs = &$db->Execute("delete from ADOXYZ"); // some ODBC drivers will fail the drop so we delete
+       $rs = $db->Execute("delete from ADOXYZ"); // some ODBC drivers will fail the drop so we delete
        if ($rs) {
                if(! $rs->EOF) print "<b>Error: </b>RecordSet returned by Execute('delete...') should show EOF</p>";
                $rs->Close();
        } else print "err=".$db->ErrorMsg();
 
        print "<p>Test select on empty table, FetchField when EOF, and GetInsertSQL</p>";
-       $rs = &$db->Execute("select id,firstname from ADOXYZ where id=9999");
+       $rs = $db->Execute("select id,firstname from ADOXYZ where id=9999");
        if ($rs && !$rs->EOF) print "<b>Error: </b>RecordSet returned by Execute(select...') on empty table should show EOF</p>";
        if ($rs->EOF && (($ox = $rs->FetchField(0)) && !empty($ox->name))) {
                $record['id'] = 99;
@@ -221,10 +226,10 @@ FROM `nuke_stories` `t1`, `nuke_authors` `t2`, `nuke_stories_cat` `t3`, `nuke_to
                $rs = $db->Execute("insert into ADOXYZ (id,firstname,lastname,created) values (99,'Should Not','Exist (Commit)',$time)");
                if ($rs && $db->CommitTrans()) {
                        $rs->Close();
-                       $rs = &$db->Execute("select * from ADOXYZ where id=99");
+                       $rs = $db->Execute("select * from ADOXYZ where id=99");
                        if ($rs === false || $rs->EOF) {
                                print '<b>Data not saved</b></p>';
-                               $rs = &$db->Execute("select * from ADOXYZ where id=99");
+                               $rs = $db->Execute("select * from ADOXYZ where id=99");
                                print_r($rs);
                                die();
                        } else print 'OK</p>';
@@ -249,7 +254,7 @@ FROM `nuke_stories` `t1`, `nuke_authors` `t2`, `nuke_stories_cat` `t3`, `nuke_to
                } else
                        print "<b>Commit failed</b></p>";
                        
-               $rs = &$db->Execute('delete from ADOXYZ where id>50');
+               $rs = $db->Execute('delete from ADOXYZ where id>50');
                if ($rs) $rs->Close();
                
                if ($db->transCnt != 0) Err("Invalid transCnt = $db->transCnt (should be 0)");
@@ -320,7 +325,7 @@ FROM `nuke_stories` `t1`, `nuke_authors` `t2`, `nuke_stories_cat` `t3`, `nuke_to
                $a = $db->MetaPrimaryKeys('ADOXYZ');
                var_dump($a);
        }
-       $rs = &$db->Execute('delete from ADOXYZ');
+       $rs = $db->Execute('delete from ADOXYZ');
        if ($rs) $rs->Close();
        
        $db->debug = false;
@@ -344,7 +349,7 @@ FROM `nuke_stories` `t1`, `nuke_authors` `t2`, `nuke_stories_cat` `t3`, `nuke_to
 ef")."</p>";//'
 
                print "<p>Testing Foreign Keys</p>";
-               $arr = $db->MetaForeignKeys('adoxyz',false,true);
+               $arr = $db->MetaForeignKeys('ADOXYZ',false,true);
                print_r($arr);
                if (!$arr) Err("No MetaForeignKeys");
                break;
@@ -769,7 +774,7 @@ END Adodb;
                print_r($rs->fields);
        }
        if ($db->databaseType !== 'odbc') {
-               $rs = &$db->Execute("select id,firstname,lastname,created,".$db->random." from ADOXYZ order by id");
+               $rs = $db->Execute("select id,firstname,lastname,created,".$db->random." from ADOXYZ order by id");
                if ($rs) {
                        if ($rs->RecordCount() != 50) {
                                print "<p><b>RecordCount returns ".$rs->RecordCount().", should be 50</b></p>";
@@ -794,7 +799,7 @@ END Adodb;
         echo "<b>GetRow Test</b>";
        $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
        $val1 = $db->GetRow("select count(*) from ADOXYZ");
-       $val2 =& $db->GetRow("select count(*) from ADOXYZ");
+       $val2 = $db->GetRow("select count(*) from ADOXYZ");
         if ($val1[0] == 50 and sizeof($val1) == 1 and $val2[0] == 50 and sizeof($val2) == 1) print "<p>GetRow returns ok</p>";
         else {
                print_r($val);
@@ -857,7 +862,7 @@ END Adodb;
        }
        
        print "<p>FETCH_MODE = ASSOC: Should get 1, Caroline</p>";
-       $rs = &$db->SelectLimit('select id,firstname from ADOXYZ order by id',2);
+       $rs = $db->SelectLimit('select id,firstname from ADOXYZ order by id',2);
        if ($rs && !$rs->EOF) {
                if (ADODB_ASSOC_CASE == 2) {
                        $id = 'ID';
@@ -880,7 +885,7 @@ END Adodb;
        
        $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
        print "<p>FETCH_MODE = NUM: Should get 1, Caroline</p>";
-       $rs = &$db->SelectLimit('select id,firstname from ADOXYZ order by id',1);
+       $rs = $db->SelectLimit('select id,firstname from ADOXYZ order by id',1);
        if ($rs && !$rs->EOF) {
                if (isset($rs->fields['id'])) Err("FETCH_NUM has ASSOC fields");
                if ($rs->fields[0] != 1)  {Err("Error 1"); print_r($rs->fields);};
@@ -893,9 +898,9 @@ END Adodb;
        
        $db->debug = false;
        print "<p>GetRowAssoc Upper: Should get 1, Caroline</p>";
-       $rs = &$db->SelectLimit('select id,firstname from ADOXYZ order by id',1);
+       $rs = $db->SelectLimit('select id,firstname from ADOXYZ order by id',1);
        if ($rs && !$rs->EOF) {
-               $arr = &$rs->GetRowAssoc();
+               $arr = $rs->GetRowAssoc();
                if ($arr['ID'] != 1) {Err("Error 1");print_r($arr);};
                if (trim($arr['FIRSTNAME']) != 'Caroline') {Err("Error 2"); print_r($arr);};
                $rs->MoveNext();
@@ -903,16 +908,16 @@ END Adodb;
 
        }
        print "<p>GetRowAssoc Lower: Should get 1, Caroline</p>";
-       $rs = &$db->SelectLimit('select id,firstname from ADOXYZ order by id',1);
+       $rs = $db->SelectLimit('select id,firstname from ADOXYZ order by id',1);
        if ($rs && !$rs->EOF) {
-               $arr = &$rs->GetRowAssoc(false);
+               $arr = $rs->GetRowAssoc(false);
                if ($arr['id'] != 1) {Err("Error 1"); print_r($arr);};
                if (trim($arr['firstname']) != 'Caroline') {Err("Error 2"); print_r($arr);};
 
        }
        
        print "<p>GetCol Test</p>";
-       $col = $db->GetCol('select distinct firstname from adoxyz order by 1');
+       $col = $db->GetCol('select distinct firstname from ADOXYZ order by 1');
        if (!is_array($col)) Err("Col size is wrong");
        if (trim($col[0]) != 'Alan' or trim($col[9]) != 'Yat Sun') Err("Col elements wrong");
 
@@ -929,7 +934,7 @@ END Adodb;
        
        
        print "<p>SelectLimit Distinct Test 1: Should see Caroline, John and Mary</p>";
-       $rs = &$db->SelectLimit('select distinct * from ADOXYZ order by id',3);
+       $rs = $db->SelectLimit('select distinct * from ADOXYZ order by id',3);
        
        
        if ($rs && !$rs->EOF) {
@@ -945,7 +950,7 @@ END Adodb;
        } else Err("Failed SelectLimit Test 1");
        
        print "<p>SelectLimit Test 2: Should see Mary, George and Mr. Alan</p>";
-       $rs = &$db->SelectLimit('select * from ADOXYZ order by id',3,2);
+       $rs = $db->SelectLimit('select * from ADOXYZ order by id',3,2);
        if ($rs && !$rs->EOF) {
                if (trim($rs->fields[1]) != 'Mary') Err("Error 1 - No Mary, instead: ".$rs->fields[1]);
                $rs->MoveNext();
@@ -961,7 +966,7 @@ END Adodb;
        print "<p>SelectLimit Test 3: Should see Wai Hun and Steven</p>";
        $db->debug=1;
        global $A; $A=1;
-       $rs = &$db->SelectLimit('select * from ADOXYZ order by id',-1,48);
+       $rs = $db->SelectLimit('select * from ADOXYZ order by id',-1,48);
        $A=0;
        if ($rs && !$rs->EOF) {
                if (empty($rs->connection)) print "<b>Connection object missing from recordset</b></br>";
@@ -978,7 +983,7 @@ END Adodb;
                $db->debug = false;
        
        
-       $rs = &$db->Execute("select * from ADOXYZ order by id");
+       $rs = $db->Execute("select * from ADOXYZ order by id");
        print "<p>Testing Move()</p>";  
        if (!$rs)Err( "Failed Move SELECT");
        else {
@@ -1037,10 +1042,10 @@ END Adodb;
        $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
        if ($db->dataProvider == 'postgres') {
                $sql = "select ".$db->Concat('cast(firstname as varchar)',$db->qstr(' '),'lastname')." as fullname,id,".$db->sysTimeStamp." as d from ADOXYZ";
-               $rs = &$db->Execute($sql);
+               $rs = $db->Execute($sql);
        } else {
                $sql = "select distinct ".$db->Concat('firstname',$db->qstr(' '),'lastname')." as fullname,id,".$db->sysTimeStamp." as d from ADOXYZ";
-               $rs = &$db->Execute($sql);
+               $rs = $db->Execute($sql);
        }
        if ($rs) {
                if (empty($_GET['hide'])) rs2html($rs);
@@ -1051,9 +1056,9 @@ END Adodb;
        print "<hr />Testing GetArray() ";
        //$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
        
-       $rs = &$db->Execute("select * from ADOXYZ order by id");
+       $rs = $db->Execute("select * from ADOXYZ order by id");
        if ($rs) {
-               $arr = &$rs->GetArray(10);
+               $arr = $rs->GetArray(10);
                if (sizeof($arr) != 10 || trim($arr[1][1]) != 'John' || trim($arr[1][2]) != 'Lim') print $arr[1][1].' '.$arr[1][2]."<b> &nbsp; ERROR</b><br>";
                else print " OK<BR>";
        }
@@ -1063,7 +1068,7 @@ END Adodb;
        echo "Testing error handling, should see illegal column 'x' error=<i>$e ($e2) </i><br>";
        if (!$e || !$e2) Err("Error handling did not work");
        print "Testing FetchNextObject for 1 object ";
-       $rs = &$db->Execute("select distinct lastname,firstname from ADOXYZ where firstname='Caroline'");
+       $rs = $db->Execute("select distinct lastname,firstname from ADOXYZ where firstname='Caroline'");
        $fcnt = 0;
        if ($rs)
        while ($o = $rs->FetchNextObject()) {
@@ -1086,7 +1091,7 @@ END Adodb;
        //$arr = $db->GetArray("select  lastname,firstname from ADOXYZ");
        //print_r($arr);
        print "<hr />";
-       $rs =& $db->Execute("select distinct lastname,firstname,created from ADOXYZ");
+       $rs = $db->Execute("select distinct lastname,firstname,created from ADOXYZ");
        
        if ($rs) {
                $arr = $rs->GetAssoc();
@@ -1095,7 +1100,7 @@ END Adodb;
                else print " OK 1";
        }
        
-       $arr = &$db->GetAssoc("select distinct lastname,firstname from ADOXYZ");
+       $arr = $db->GetAssoc("select distinct lastname,firstname from ADOXYZ");
        if ($arr) {
                //print_r($arr);
                if (empty($arr['See']) || trim($arr['See']) != 'Wai Hun') print $arr['See']." &nbsp; <b>ERROR</b><br>";
@@ -1111,31 +1116,31 @@ END Adodb;
        for ($loop=0; $loop < 1; $loop++) {
        print "Testing GetMenu() and CacheExecute<BR>";
        $db->debug = true;
-       $rs = &$db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
+       $rs = $db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
        
        
 
 
        if ($rs) print 'With blanks, Steven selected:'. $rs->GetMenu('menu','Steven').'<BR>'; 
        else print " Fail<BR>";
-       $rs = &$db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
+       $rs = $db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
        
        if ($rs) print ' No blanks, Steven selected: '. $rs->GetMenu('menu','Steven',false).'<BR>';
        else print " Fail<BR>";
        
-       $rs = &$db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
+       $rs = $db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
        
        if ($rs) print ' 1st line set to **** , Steven selected: '. $rs->GetMenu('menu','Steven','1st:****').'<BR>';
        else print " Fail<BR>";
        
 
        
-       $rs = &$db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
+       $rs = $db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
        if ($rs) print ' Multiple, Alan selected: '. $rs->GetMenu('menu','Alan',false,true).'<BR>';
        else print " Fail<BR>";
        print '</p><hr />';
        
-       $rs = &$db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
+       $rs = $db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
        if ($rs) {
                print ' Multiple, Alan and George selected: '. $rs->GetMenu('menu',array('Alan','George'),false,true);
                if (empty($rs->connection)) print "<b>Connection object missing from recordset</b></br>";
@@ -1149,22 +1154,22 @@ END Adodb;
        print "<hr />";
 
        print "Testing GetMenu2() <BR>";
-       $rs = &$db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
+       $rs = $db->CacheExecute(4,"select distinct firstname,lastname from ADOXYZ");
        if ($rs) print 'With blanks, Steven selected:'. $rs->GetMenu2('menu',('Oey')).'<BR>'; 
        else print " Fail<BR>";
-       $rs = &$db->CacheExecute(6,"select distinct firstname,lastname from ADOXYZ");
+       $rs = $db->CacheExecute(6,"select distinct firstname,lastname from ADOXYZ");
        if ($rs) print ' No blanks, Steven selected: '. $rs->GetMenu2('menu',('Oey'),false).'<BR>';
        else print " Fail<BR>";
        }
-       echo "<h3>CacheEXecute</h3>";
+       echo "<h3>CacheExecute</h3>";
 
        $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
-       $rs = &$db->CacheExecute(6,"select distinct firstname,lastname from ADOXYZ");
+       $rs = $db->CacheExecute(6,"select distinct firstname,lastname from ADOXYZ");
        print_r($rs->fields); echo $rs->fetchMode;echo "<br>";
        echo $rs->Fields('firstname');
        
        $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
-       $rs = &$db->CacheExecute(6,"select distinct firstname,lastname from ADOXYZ");
+       $rs = $db->CacheExecute(6,"select distinct firstname,lastname from ADOXYZ");
        print_r($rs->fields);echo "<br>";
        echo $rs->Fields('firstname');
        $db->debug = false;
@@ -1174,26 +1179,26 @@ END Adodb;
        
        $sql = 'select * from ADOXYZ where 0=1';
        echo "<p>**Testing '$sql' (phplens compat 1)</p>";
-       $rs = &$db->Execute($sql);
+       $rs = $db->Execute($sql);
        if (!$rs) err( "<b>No recordset returned for '$sql'</b>");
        if (!$rs->FieldCount()) err( "<b>No fields returned for $sql</b>");
        if (!$rs->FetchField(1)) err( "<b>FetchField failed for $sql</b>");
        
        $sql = 'select * from ADOXYZ order by 1';
        echo "<p>**Testing '$sql' (phplens compat 2)</p>";
-       $rs = &$db->Execute($sql);
+       $rs = $db->Execute($sql);
        if (!$rs) err( "<b>No recordset returned for '$sql'<br>".$db->ErrorMsg()."</b>");
        
        
        $sql = 'select * from ADOXYZ order by 1,1';
        echo "<p>**Testing '$sql' (phplens compat 3)</p>";
-       $rs = &$db->Execute($sql);
+       $rs = $db->Execute($sql);
        if (!$rs) err( "<b>No recordset returned for '$sql'<br>".$db->ErrorMsg()."</b>");
        
        
        // Move
-       $rs1 = &$db->Execute("select id from ADOXYZ where id <= 2 order by 1");
-       $rs2 = &$db->Execute("select id from ADOXYZ where id = 3 or id = 4 order by 1");
+       $rs1 = $db->Execute("select id from ADOXYZ where id <= 2 order by 1");
+       $rs2 = $db->Execute("select id from ADOXYZ where id = 3 or id = 4 order by 1");
 
        if ($rs1) $rs1->MoveLast();
        if ($rs2) $rs2->MoveLast();
@@ -1223,7 +1228,7 @@ END Adodb;
        echo "<p>";
        
        if (substr($db->dataProvider,0,3) != 'notused') { // used to crash ado
-               $sql = "select firstnames from adoxyz";
+               $sql = "select firstnames from ADOXYZ";
                print "<p>Testing execution of illegal statement: <i>$sql</i></p>";
                if ($db->Execute($sql) === false) {
                        print "<p>This returns the following ErrorMsg(): <i>".$db->ErrorMsg()."</i> and ErrorNo(): ".$db->ErrorNo().'</p>';
@@ -1234,7 +1239,7 @@ END Adodb;
        
        print "<p>ASSOC TEST 2<br>";
        $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
-       $rs = $db->query('select * from adoxyz order by id');
+       $rs = $db->query('select * from ADOXYZ order by id');
        if ($ee = $db->ErrorMsg()) {
                Err("Error message=$ee");
        }
@@ -1255,7 +1260,7 @@ END Adodb;
                print "<b>ADODB_FETCH_BOTH not supported</b> for dataProvider=".$db->dataProvider."<br>";
        } else {
                $ADODB_FETCH_MODE = ADODB_FETCH_BOTH;
-               $rs = $db->query('select * from adoxyz order by id');
+               $rs = $db->query('select * from ADOXYZ order by id');
                for($i=0;$i<$rs->FieldCount();$i++) 
                { 
                        $fld=$rs->FetchField($i); 
@@ -1266,7 +1271,7 @@ END Adodb;
        
        print "<p>NUM TEST 2<br>";
        $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
-       $rs = $db->query('select * from adoxyz order by id');
+       $rs = $db->query('select * from ADOXYZ order by id');
        for($i=0;$i<$rs->FieldCount();$i++) 
        { 
                $fld=$rs->FetchField($i); 
@@ -1276,7 +1281,7 @@ END Adodb;
        
        print "<p>ASSOC Test of SelectLimit<br>";
        $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
-       $rs = $db->selectlimit('select * from adoxyz order by id',3,4);
+       $rs = $db->selectlimit('select * from ADOXYZ order by id',3,4);
        $cnt = 0;
        while ($rs && !$rs->EOF) {
                $cnt += 1;
@@ -1293,7 +1298,7 @@ END Adodb;
        if ($db->sysDate) {
                $saved = $db->debug;
                $db->debug = 1;
-               $rs = $db->Execute("select {$db->sysDate} from adoxyz where id=1");
+               $rs = $db->Execute("select {$db->sysDate} from ADOXYZ where id=1");
                if (ADORecordSet::UnixDate(date('Y-m-d')) != $rs->UnixDate($rs->fields[0])) {
                        print "<p><b>Invalid date {$rs->fields[0]}</b></p>";
                } else
@@ -1309,13 +1314,13 @@ END Adodb;
        print "<p>Test CSV</p>";
        include_once('../toexport.inc.php');
        //$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
-       $rs = $db->SelectLimit('select id,firstname,lastname,created,\'He, he\' he,\'"\' q  from adoxyz',10);   
+       $rs = $db->SelectLimit('select id,firstname,lastname,created,\'He, he\' he,\'"\' q  from ADOXYZ',10);   
        
        print "<pre>";
        print rs2csv($rs);
        print "</pre>";
        
-       $rs = $db->SelectLimit('select id,firstname,lastname,created,\'The      "young man", he said\' from adoxyz',10);        
+       $rs = $db->SelectLimit('select id,firstname,lastname,created,\'The      "young man", he said\' from ADOXYZ',10);        
        
        if (PHP_VERSION < 5) {
                print "<pre>";
@@ -1366,7 +1371,7 @@ END Adodb;
        
        print "<p>Test Replace</p>";
        
-       $ret = $db->Replace('adoxyz', 
+       $ret = $db->Replace('ADOXYZ', 
                array('id'=>1,'firstname'=>'Caroline','lastname'=>'Miranda'),
                array('id'),
                $autoq = true);
@@ -1385,14 +1390,14 @@ END Adodb;
                }
                $ADODB_COUNTRECS = $savec;
        }
-       $ret = $db->Replace('adoxyz', 
+       $ret = $db->Replace('ADOXYZ', 
                array('id'=>1000,'firstname'=>'Harun','lastname'=>'Al-Rashid'),
                array('id','firstname'),
                $autoq = true);
        if ($ret != 2) print "<b>Replace failed: </b>";
        print "test A return value=$ret (2 expected) <p>";
        
-       $ret = $db->Replace('adoxyz', 
+       $ret = $db->Replace('ADOXYZ', 
                array('id'=>1000,'firstname'=>'Sherazade','lastname'=>'Al-Rashid'),
                'id',
                $autoq = true);
@@ -1403,7 +1408,7 @@ END Adodb;
        
        print "<h3>rs2rs Test</h3>";
        
-       $rs = $db->Execute('select * from adoxyz where id>= 1 order by id');
+       $rs = $db->Execute('select * from ADOXYZ where id>= 1 order by id');
        $rs = $db->_rs2rs($rs);
        $rs->valueX = 'X';
        $rs->MoveNext();
@@ -1417,7 +1422,7 @@ END Adodb;
        $db->debug=true;
        $sql = PivotTableSQL(
                $db,                    # adodb connection
-               'adoxyz',               # tables
+               'ADOXYZ',               # tables
                'firstname',    # row fields
                'lastname',             # column fields 
                false,                  # join
@@ -1438,7 +1443,7 @@ END Adodb;
        $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
        
        include_once "PEAR.php";
-       $rs = $db->query('select * from adoxyz where id>0 and id<10 order by id');
+       $rs = $db->query('select * from ADOXYZ where id>0 and id<10 order by id');
        
        $i = 0;
        if ($rs && !$rs->EOF) {
@@ -1456,12 +1461,12 @@ END Adodb;
        }
        
        
-       if ($i != $db->GetOne('select count(*) from adoxyz where id>0 and id<10')) {
+       if ($i != $db->GetOne('select count(*) from ADOXYZ where id>0 and id<10')) {
                print "<p><b>PEAR DB emulation error 1.1 EOF ($i)</b></p>";
                $pear = false;
        }
        
-       $rs = $db->limitQuery('select * from adoxyz where id>0 order by id',$i=3,$top=3);
+       $rs = $db->limitQuery('select * from ADOXYZ where id>0 order by id',$i=3,$top=3);
        $i2 = $i;
        if ($rs && !$rs->EOF) {
 
@@ -1487,7 +1492,7 @@ END Adodb;
        flush();
 
        
-       $rs = $db->SelectLimit("select ".$db->sysDate." from adoxyz",1);
+       $rs = $db->SelectLimit("select ".$db->sysDate." from ADOXYZ",1);
        $date = $rs->fields[0];
        if (!$date) Err("Bad sysDate");
        else {
@@ -1497,9 +1502,9 @@ END Adodb;
        }
        $db->debug=1;
        if ($db->dataProvider == 'oci8') 
-               $rs = $db->SelectLimit("select to_char(".$db->sysTimeStamp.",'YYYY-MM-DD HH24:MI:SS') from adoxyz",1);
+               $rs = $db->SelectLimit("select to_char(".$db->sysTimeStamp.",'YYYY-MM-DD HH24:MI:SS') from ADOXYZ",1);
        else 
-               $rs = $db->SelectLimit("select ".$db->sysTimeStamp." from adoxyz",1);
+               $rs = $db->SelectLimit("select ".$db->sysTimeStamp." from ADOXYZ",1);
        $date = $rs->fields[0];
        if (!$date) Err("Bad sysTimeStamp");
        else {
@@ -1572,7 +1577,7 @@ END Adodb;
        if ($metae !== DB_ERROR_NOSUCHTABLE) print "<p><b>MetaError=".$metae." wrong</b>, should be ".DB_ERROR_NOSUCHTABLE."</p>";
        else print "<p>MetaError ok (".DB_ERROR_NOSUCHTABLE."): ".$db->MetaErrorMsg($metae)."</p>";
        if ($TESTERRS != 1) print "<b>raiseErrorFn select nowhere failed</b><br>";
-       $rs = $db->Execute('select * from adoxyz');
+       $rs = $db->Execute('select * from ADOXYZ');
        if ($debugerr) print " Move";
        $rs->Move(100);
        $rs->_queryID = false;
@@ -1585,17 +1590,17 @@ END Adodb;
        
        print "<p>SetFetchMode() tests</p>";
        $db->SetFetchMode(ADODB_FETCH_ASSOC);
-       $rs = $db->SelectLimit('select firstname from adoxyz',1);
+       $rs = $db->SelectLimit('select firstname from ADOXYZ',1);
        if (!isset($rs->fields['firstname'])) Err("BAD FETCH ASSOC");
        
        $ADODB_FETCH_MODE = ADODB_FETCH_NUM;    
-       $rs = $db->SelectLimit('select firstname from adoxyz',1);
+       $rs = $db->SelectLimit('select firstname from ADOXYZ',1);
        //var_dump($rs->fields);
        if (!isset($rs->fields['firstname'])) Err("BAD FETCH ASSOC");
        
        $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;  
        $db->SetFetchMode(ADODB_FETCH_NUM);
-       $rs = $db->SelectLimit('select firstname from adoxyz',1);
+       $rs = $db->SelectLimit('select firstname from ADOXYZ',1);
        if (!isset($rs->fields[0])) Err("BAD FETCH NUM");
        
        flush();
@@ -1733,6 +1738,6 @@ include_once('../adodb-time.inc.php');
 if (isset($_GET['time'])) adodb_date_test();
 
 ?>
-<p><i>ADODB Database Library  (c) 2000-2006 John Lim. All rights reserved. Released under BSD and LGPL, PHP <?php echo PHP_VERSION ?>.</i></p>
+<p><i>ADODB Database Library  (c) 2000-2007 John Lim. All rights reserved. Released under BSD and LGPL, PHP <?php echo PHP_VERSION ?>.</i></p>
 </body>
 </html>
index 92fc280..c0924ae 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.80 8 Mar 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 24d4fd8..c3ae659 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /** 
- * @version V4.50 6 July 2004 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.50 6 July 2004 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 5ea4f89..429479a 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.80 8 Mar 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 762e6b9..7cf8adb 100644 (file)
@@ -2,7 +2,7 @@
 <body>
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.80 8 Mar 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 551deb9..67cbc5c 100644 (file)
@@ -1,7 +1,7 @@
 <?php
   
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.80 8 Mar 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
index 263f85a..4788596 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /** 
- * @version V4.50 6 July 2004 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.50 6 July 2004 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 061fd26..0a99c7b 100644 (file)
@@ -2,7 +2,7 @@
 <body>
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.80 8 Mar 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 7c836e1..44de052 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.80 8 Mar 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 0ffffe6..1799cc7 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.80 8 Mar 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 4d79b73..81ebbe8 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.80 8 Mar 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 49ce909..83db560 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+V4.80 8 Mar 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index 6e0f777..a7406a0 100644 (file)
@@ -1,7 +1,7 @@
 <?php
 
 /** 
- * @version V4.93 10 Oct 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+ * @version V4.93 10 Oct 2006 (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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. 
index f84960e..050e955 100644 (file)
@@ -1,6 +1,6 @@
-<?php
+<?php 
 /*
-  V4.93 10 Oct 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights reserved.
+  V4.93 10 Oct 2006  (c) 2000-2007 John Lim (jlim#natsoft.com.my). 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.
diff --git a/typo3/sysext/adodb/doc/493.DBAL.patch b/typo3/sysext/adodb/doc/493.DBAL.patch
deleted file mode 100644 (file)
index 5157378..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-diff -urN adodb493/adodb-lib.inc.php adodb/adodb-lib.inc.php
---- adodb493/adodb-lib.inc.php 2006-10-10 09:54:43.000000000 +0200
-+++ adodb/adodb-lib.inc.php    2006-10-13 22:46:51.000000000 +0200
-@@ -848,7 +848,7 @@
-       $values = substr($values, 0, -2);
-       // Append the fields and their values to the insert query.
--      return 'INSERT INTO '.$tableName.' ( '.$fields.' ) VALUES ( '.$values.' )';
-+      return 'INSERT INTO '.$zthis->nameQuote.$tableName.$zthis->nameQuote.' ( '.$fields.' ) VALUES ( '.$values.' )';
- }
-diff -urN adodb493/datadict/datadict-oci8.inc.php adodb/datadict/datadict-oci8.inc.php
---- adodb493/datadict/datadict-oci8.inc.php    2006-10-10 09:54:29.000000000 +0200
-+++ adodb/datadict/datadict-oci8.inc.php       2006-10-13 22:46:51.000000000 +0200
-@@ -109,6 +109,7 @@
-       
-       function AddColumnSQL($tabname, $flds)
-       {
-+              $tabname = $this->TableName ($tabname);
-               $f = array();
-               list($lines,$pkey) = $this->_GenFields($flds);
-               $s = "ALTER TABLE $tabname ADD (";
-@@ -123,6 +124,7 @@
-       
-       function AlterColumnSQL($tabname, $flds)
-       {
-+              $tabname = $this->TableName ($tabname);
-               $f = array();
-               list($lines,$pkey) = $this->_GenFields($flds);
-               $s = "ALTER TABLE $tabname MODIFY(";
-@@ -136,6 +138,7 @@
-       
-       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);
-               
-@@ -251,9 +254,9 @@
-               }
-               
-               if ( is_array($flds) )
--                      $flds = implode(', ',$flds);
--              $s = 'CREATE' . $unique . ' INDEX ' . $idxname . ' ON ' . $tabname . ' (' . $flds . ')';
--              
-+                      $flds = implode('", "',$flds);
-+              $s = 'CREATE' . $unique . ' INDEX "' . $idxname . '" ON "' .$tabname . '" ("' . $flds . '")';
-+
-               if ( isset($idxoptions[$this->upperName]) )
-                       $s .= $idxoptions[$this->upperName];
-               
-@@ -279,4 +282,4 @@
-               return  "COMMENT ON COLUMN $table.$col IS $cmt";
-       }
- }
--?>
-\ No newline at end of file
-+?>
-diff -urN adodb493/datadict/datadict-postgres.inc.php adodb/datadict/datadict-postgres.inc.php
---- adodb493/datadict/datadict-postgres.inc.php        2006-10-10 09:54:29.000000000 +0200
-+++ adodb/datadict/datadict-postgres.inc.php   2006-10-13 22:46:51.000000000 +0200
-@@ -342,7 +342,7 @@
-               
-               $unique = isset($idxoptions['UNIQUE']) ? ' UNIQUE' : '';
-               
--              $s = 'CREATE' . $unique . ' INDEX ' . $idxname . ' ON ' . $tabname . ' ';
-+              $s = 'CREATE' . $unique . ' INDEX "' . $idxname . '" ON "' . $tabname . '" ';
-               
-               if (isset($idxoptions['HASH']))
-                       $s .= 'USING HASH ';
-@@ -351,8 +351,8 @@
-                       $s .= $idxoptions[$this->upperName];
-               
-               if ( is_array($flds) )
--                      $flds = implode(', ',$flds);
--              $s .= '(' . $flds . ')';
-+                      $flds = implode('", "',$flds);
-+              $s .= '("' . $flds . '")';
-               $sql[] = $s;
-               
-               return $sql;
-diff -urN adodb493/drivers/adodb-oci8.inc.php adodb/drivers/adodb-oci8.inc.php
---- adodb493/drivers/adodb-oci8.inc.php        2006-10-10 09:54:40.000000000 +0200
-+++ adodb/drivers/adodb-oci8.inc.php   2006-10-13 22:46:51.000000000 +0200
-@@ -105,7 +105,7 @@
-               $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
-               if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false);
-               
--              $rs = $this->Execute(sprintf($this->metaColumnsSQL,strtoupper($table)));
-+              $rs = $this->Execute(sprintf($this->metaColumnsSQL,$table));
-               
-               if (isset($savem)) $this->SetFetchMode($savem);
-               $ADODB_FETCH_MODE = $save;
diff --git a/typo3/sysext/adodb/doc/494.DBAL.patch b/typo3/sysext/adodb/doc/494.DBAL.patch
new file mode 100644 (file)
index 0000000..41fb737
--- /dev/null
@@ -0,0 +1,87 @@
+diff -urN adodb-494.orig/adodb-lib.inc.php adodb-494/adodb-lib.inc.php
+--- adodb-494.orig/adodb-lib.inc.php   2007-02-26 12:51:09.000000000 +0100
++++ adodb-494/adodb-lib.inc.php        2007-02-26 12:51:28.000000000 +0100
+@@ -857,7 +857,7 @@
+       $values = substr($values, 0, -2);
+       // Append the fields and their values to the insert query.
+-      return 'INSERT INTO '.$tableName.' ( '.$fields.' ) VALUES ( '.$values.' )';
++      return 'INSERT INTO '.$zthis->nameQuote.$tableName.$zthis->nameQuote.' ( '.$fields.' ) VALUES ( '.$values.' )';
+ }
+diff -urN adodb-494.orig/datadict/datadict-oci8.inc.php adodb-494/datadict/datadict-oci8.inc.php
+--- adodb-494.orig/datadict/datadict-oci8.inc.php      2007-02-26 12:51:09.000000000 +0100
++++ adodb-494/datadict/datadict-oci8.inc.php   2007-02-26 12:51:28.000000000 +0100
+@@ -109,6 +109,7 @@
+       
+       function AddColumnSQL($tabname, $flds)
+       {
++              $tabname = $this->TableName ($tabname);
+               $f = array();
+               list($lines,$pkey) = $this->_GenFields($flds);
+               $s = "ALTER TABLE $tabname ADD (";
+@@ -123,6 +124,7 @@
+       
+       function AlterColumnSQL($tabname, $flds)
+       {
++              $tabname = $this->TableName ($tabname);
+               $f = array();
+               list($lines,$pkey) = $this->_GenFields($flds);
+               $s = "ALTER TABLE $tabname MODIFY(";
+@@ -136,6 +138,7 @@
+       
+       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);
+               
+@@ -259,9 +262,9 @@
+               }
+               
+               if ( is_array($flds) )
+-                      $flds = implode(', ',$flds);
+-              $s = 'CREATE' . $unique . ' INDEX ' . $idxname . ' ON ' . $tabname . ' (' . $flds . ')';
+-              
++                      $flds = implode('", "',$flds);
++              $s = 'CREATE' . $unique . ' INDEX "' . $idxname . '" ON "' .$tabname . '" ("' . $flds . '")';
++
+               if ( isset($idxoptions[$this->upperName]) )
+                       $s .= $idxoptions[$this->upperName];
+               
+diff -urN adodb-494.orig/datadict/datadict-postgres.inc.php adodb-494/datadict/datadict-postgres.inc.php
+--- adodb-494.orig/datadict/datadict-postgres.inc.php  2007-02-26 12:51:09.000000000 +0100
++++ adodb-494/datadict/datadict-postgres.inc.php       2007-02-26 12:51:28.000000000 +0100
+@@ -342,7 +342,7 @@
+               
+               $unique = isset($idxoptions['UNIQUE']) ? ' UNIQUE' : '';
+               
+-              $s = 'CREATE' . $unique . ' INDEX ' . $idxname . ' ON ' . $tabname . ' ';
++              $s = 'CREATE' . $unique . ' INDEX "' . $idxname . '" ON "' . $tabname . '" ';
+               
+               if (isset($idxoptions['HASH']))
+                       $s .= 'USING HASH ';
+@@ -351,8 +351,8 @@
+                       $s .= $idxoptions[$this->upperName];
+               
+               if ( is_array($flds) )
+-                      $flds = implode(', ',$flds);
+-              $s .= '(' . $flds . ')';
++                      $flds = implode('", "',$flds);
++              $s .= '("' . $flds . '")';
+               $sql[] = $s;
+               
+               return $sql;
+diff -urN adodb-494.orig/drivers/adodb-oci8.inc.php adodb-494/drivers/adodb-oci8.inc.php
+--- adodb-494.orig/drivers/adodb-oci8.inc.php  2007-02-26 12:51:09.000000000 +0100
++++ adodb-494/drivers/adodb-oci8.inc.php       2007-02-26 12:51:28.000000000 +0100
+@@ -105,7 +105,7 @@
+               $ADODB_FETCH_MODE = ADODB_FETCH_NUM;
+               if ($this->fetchMode !== false) $savem = $this->SetFetchMode(false);
+               
+-              $rs = $this->Execute(sprintf($this->metaColumnsSQL,strtoupper($table)));
++              $rs = $this->Execute(sprintf($this->metaColumnsSQL,$table));
+               
+               if (isset($savem)) $this->SetFetchMode($savem);
+               $ADODB_FETCH_MODE = $save;
index 7fd18ae..f49da58 100644 (file)
@@ -3,7 +3,7 @@
 ########################################################################
 # Extension Manager/Repository config file for ext: "adodb"
 #
-# Auto generated 14-10-2006 00:53
+# Auto generated 26-02-2007 13:08
 #
 # Manual updates:
 # Only the data in the array - anything else is removed by next write.
@@ -32,12 +32,12 @@ $EM_CONF[$_EXTKEY] = array(
        'author_company' => 'TYPO3 Association',
        'CGLcompliance' => '',
        'CGLcompliance_note' => '',
-       'version' => '4.93.0',
-       '_md5_values_when_last_written' => 'a:199:{s:25:"checkconnectionwizard.php";s:4:"8600";s:27:"class.tx_adodb_tceforms.php";s:4:"5ad6";s:26:"datasource_flexform_ds.xml";s:4:"96fb";s:12:"ext_icon.gif";s:4:"c778";s:17:"ext_localconf.php";s:4:"6ec5";s:31:"locallang_datasource_config.xml";s:4:"df55";s:20:"locallang_wizard.xml";s:4:"dca8";s:33:"adodb/adodb-active-record.inc.php";s:4:"ee16";s:26:"adodb/adodb-csvlib.inc.php";s:4:"aeff";s:28:"adodb/adodb-datadict.inc.php";s:4:"3a69";s:25:"adodb/adodb-error.inc.php";s:4:"7419";s:32:"adodb/adodb-errorhandler.inc.php";s:4:"6c46";s:29:"adodb/adodb-errorpear.inc.php";s:4:"7528";s:30:"adodb/adodb-exceptions.inc.php";s:4:"a216";s:28:"adodb/adodb-iterator.inc.php";s:4:"475c";s:23:"adodb/adodb-lib.inc.php";s:4:"47e8";s:32:"adodb/adodb-memcache.lib.inc.php";s:4:"8e68";s:25:"adodb/adodb-pager.inc.php";s:4:"dcc0";s:24:"adodb/adodb-pear.inc.php";s:4:"5a21";s:24:"adodb/adodb-perf.inc.php";s:4:"6112";s:24:"adodb/adodb-php4.inc.php";s:4:"c9a0";s:24:"adodb/adodb-time.inc.php";s:4:"896a";s:29:"adodb/adodb-xmlschema.inc.php";s:4:"e457";s:31:"adodb/adodb-xmlschema03.inc.php";s:4:"f8f4";s:19:"adodb/adodb.inc.php";s:4:"9d00";s:17:"adodb/license.txt";s:4:"8bd7";s:24:"adodb/pivottable.inc.php";s:4:"affa";s:16:"adodb/readme.txt";s:4:"856d";s:22:"adodb/rsfilter.inc.php";s:4:"2ff6";s:16:"adodb/server.php";s:4:"5187";s:22:"adodb/toexport.inc.php";s:4:"2fcf";s:20:"adodb/tohtml.inc.php";s:4:"da0f";s:19:"adodb/xmlschema.dtd";s:4:"26f3";s:21:"adodb/xmlschema03.dtd";s:4:"1cd4";s:30:"adodb/contrib/toxmlrpc.inc.php";s:4:"4c40";s:35:"adodb/cute_icons_for_site/adodb.gif";s:4:"9430";s:36:"adodb/cute_icons_for_site/adodb2.gif";s:4:"f540";s:38:"adodb/datadict/datadict-access.inc.php";s:4:"c7d2";s:35:"adodb/datadict/datadict-db2.inc.php";s:4:"7649";s:40:"adodb/datadict/datadict-firebird.inc.php";s:4:"897e";s:39:"adodb/datadict/datadict-generic.inc.php";s:4:"7480";s:37:"adodb/datadict/datadict-ibase.inc.php";s:4:"8d71";s:40:"adodb/datadict/datadict-informix.inc.php";s:4:"a35b";s:37:"adodb/datadict/datadict-mssql.inc.php";s:4:"0b0b";s:37:"adodb/datadict/datadict-mysql.inc.php";s:4:"1344";s:36:"adodb/datadict/datadict-oci8.inc.php";s:4:"85fb";s:40:"adodb/datadict/datadict-postgres.inc.php";s:4:"c3f9";s:37:"adodb/datadict/datadict-sapdb.inc.php";s:4:"50fa";s:38:"adodb/datadict/datadict-sybase.inc.php";s:4:"19b7";s:33:"adodb/docs/docs-active-record.htm";s:4:"755c";s:25:"adodb/docs/docs-adodb.htm";s:4:"62b4";s:28:"adodb/docs/docs-datadict.htm";s:4:"92e8";s:26:"adodb/docs/docs-oracle.htm";s:4:"2c7d";s:24:"adodb/docs/docs-perf.htm";s:4:"7134";s:27:"adodb/docs/docs-session.htm";s:4:"6ed7";s:31:"adodb/docs/docs-session.old.htm";s:4:"7189";s:28:"adodb/docs/old-changelog.htm";s:4:"3158";s:21:"adodb/docs/readme.htm";s:4:"9a0e";s:32:"adodb/docs/tips_portable_sql.htm";s:4:"1ad0";s:19:"adodb/docs/tute.htm";s:4:"691e";s:34:"adodb/drivers/adodb-access.inc.php";s:4:"99e7";s:31:"adodb/drivers/adodb-ado.inc.php";s:4:"a3ef";s:32:"adodb/drivers/adodb-ado5.inc.php";s:4:"fda0";s:38:"adodb/drivers/adodb-ado_access.inc.php";s:4:"cc5c";s:37:"adodb/drivers/adodb-ado_mssql.inc.php";s:4:"99e2";s:41:"adodb/drivers/adodb-borland_ibase.inc.php";s:4:"1315";s:31:"adodb/drivers/adodb-csv.inc.php";s:4:"57d5";s:31:"adodb/drivers/adodb-db2.inc.php";s:4:"9dbe";s:33:"adodb/drivers/adodb-fbsql.inc.php";s:4:"a7b0";s:36:"adodb/drivers/adodb-firebird.inc.php";s:4:"1b8f";s:33:"adodb/drivers/adodb-ibase.inc.php";s:4:"51ca";s:36:"adodb/drivers/adodb-informix.inc.php";s:4:"1b93";s:38:"adodb/drivers/adodb-informix72.inc.php";s:4:"7547";s:32:"adodb/drivers/adodb-ldap.inc.php";s:4:"e396";s:33:"adodb/drivers/adodb-mssql.inc.php";s:4:"e495";s:35:"adodb/drivers/adodb-mssqlpo.inc.php";s:4:"c933";s:33:"adodb/drivers/adodb-mysql.inc.php";s:4:"de49";s:34:"adodb/drivers/adodb-mysqli.inc.php";s:4:"9c40";s:34:"adodb/drivers/adodb-mysqlt.inc.php";s:4:"6ade";s:35:"adodb/drivers/adodb-netezza.inc.php";s:4:"4025";s:32:"adodb/drivers/adodb-oci8.inc.php";s:4:"f283";s:34:"adodb/drivers/adodb-oci805.inc.php";s:4:"f17c";s:34:"adodb/drivers/adodb-oci8po.inc.php";s:4:"f8ca";s:32:"adodb/drivers/adodb-odbc.inc.php";s:4:"93b0";s:36:"adodb/drivers/adodb-odbc_db2.inc.php";s:4:"deb4";s:38:"adodb/drivers/adodb-odbc_mssql.inc.php";s:4:"fc1e";s:39:"adodb/drivers/adodb-odbc_oracle.inc.php";s:4:"5bf3";s:33:"adodb/drivers/adodb-odbtp.inc.php";s:4:"d82a";s:41:"adodb/drivers/adodb-odbtp_unicode.inc.php";s:4:"2dd9";s:34:"adodb/drivers/adodb-oracle.inc.php";s:4:"5afa";s:31:"adodb/drivers/adodb-pdo.inc.php";s:4:"4f16";s:37:"adodb/drivers/adodb-pdo_mssql.inc.php";s:4:"85d4";s:37:"adodb/drivers/adodb-pdo_mysql.inc.php";s:4:"9592";s:35:"adodb/drivers/adodb-pdo_oci.inc.php";s:4:"c8e3";s:37:"adodb/drivers/adodb-pdo_pgsql.inc.php";s:4:"756a";s:36:"adodb/drivers/adodb-postgres.inc.php";s:4:"318e";s:38:"adodb/drivers/adodb-postgres64.inc.php";s:4:"1175";s:37:"adodb/drivers/adodb-postgres7.inc.php";s:4:"e9ee";s:37:"adodb/drivers/adodb-postgres8.inc.php";s:4:"25eb";s:33:"adodb/drivers/adodb-proxy.inc.php";s:4:"4718";s:33:"adodb/drivers/adodb-sapdb.inc.php";s:4:"43ac";s:39:"adodb/drivers/adodb-sqlanywhere.inc.php";s:4:"70e2";s:34:"adodb/drivers/adodb-sqlite.inc.php";s:4:"95d6";s:36:"adodb/drivers/adodb-sqlitepo.inc.php";s:4:"fc8d";s:34:"adodb/drivers/adodb-sybase.inc.php";s:4:"c902";s:38:"adodb/drivers/adodb-sybase_ase.inc.php";s:4:"b033";s:31:"adodb/drivers/adodb-vfp.inc.php";s:4:"fdc5";s:27:"adodb/lang/adodb-ar.inc.php";s:4:"6f2a";s:27:"adodb/lang/adodb-bg.inc.php";s:4:"666d";s:31:"adodb/lang/adodb-bgutf8.inc.php";s:4:"6316";s:27:"adodb/lang/adodb-ca.inc.php";s:4:"96da";s:27:"adodb/lang/adodb-cn.inc.php";s:4:"155e";s:27:"adodb/lang/adodb-cz.inc.php";s:4:"6964";s:27:"adodb/lang/adodb-da.inc.php";s:4:"2ea2";s:27:"adodb/lang/adodb-de.inc.php";s:4:"26c5";s:27:"adodb/lang/adodb-en.inc.php";s:4:"0820";s:27:"adodb/lang/adodb-es.inc.php";s:4:"de07";s:34:"adodb/lang/adodb-esperanto.inc.php";s:4:"32b9";s:27:"adodb/lang/adodb-fr.inc.php";s:4:"dd47";s:27:"adodb/lang/adodb-hu.inc.php";s:4:"f308";s:27:"adodb/lang/adodb-it.inc.php";s:4:"15e2";s:27:"adodb/lang/adodb-nl.inc.php";s:4:"ed3d";s:27:"adodb/lang/adodb-pl.inc.php";s:4:"333e";s:30:"adodb/lang/adodb-pt-br.inc.php";s:4:"e973";s:27:"adodb/lang/adodb-ro.inc.php";s:4:"779e";s:31:"adodb/lang/adodb-ru1251.inc.php";s:4:"e828";s:27:"adodb/lang/adodb-sv.inc.php";s:4:"81fa";s:31:"adodb/lang/adodb-uk1251.inc.php";s:4:"3203";s:26:"adodb/pear/readme.Auth.txt";s:4:"4970";s:35:"adodb/pear/Auth/Container/ADOdb.php";s:4:"50f8";s:27:"adodb/perf/perf-db2.inc.php";s:4:"1e40";s:32:"adodb/perf/perf-informix.inc.php";s:4:"f39a";s:29:"adodb/perf/perf-mssql.inc.php";s:4:"e4c4";s:29:"adodb/perf/perf-mysql.inc.php";s:4:"7a9c";s:28:"adodb/perf/perf-oci8.inc.php";s:4:"23fa";s:32:"adodb/perf/perf-postgres.inc.php";s:4:"ae8b";s:38:"adodb/session/adodb-compress-bzip2.php";s:4:"a2fb";s:37:"adodb/session/adodb-compress-gzip.php";s:4:"a318";s:36:"adodb/session/adodb-cryptsession.php";s:4:"697b";s:37:"adodb/session/adodb-cryptsession2.php";s:4:"4613";s:38:"adodb/session/adodb-encrypt-mcrypt.php";s:4:"f2d4";s:35:"adodb/session/adodb-encrypt-md5.php";s:4:"c7bd";s:38:"adodb/session/adodb-encrypt-secret.php";s:4:"aa76";s:36:"adodb/session/adodb-encrypt-sha1.php";s:4:"5c92";s:28:"adodb/session/adodb-sess.txt";s:4:"260b";s:36:"adodb/session/adodb-session-clob.php";s:4:"7519";s:37:"adodb/session/adodb-session-clob2.php";s:4:"d882";s:31:"adodb/session/adodb-session.php";s:4:"6e74";s:32:"adodb/session/adodb-session2.php";s:4:"f8c1";s:38:"adodb/session/adodb-sessions.mysql.sql";s:4:"42fe";s:44:"adodb/session/adodb-sessions.oracle.clob.sql";s:4:"3c64";s:39:"adodb/session/adodb-sessions.oracle.sql";s:4:"08d0";s:27:"adodb/session/crypt.inc.php";s:4:"4dad";s:32:"adodb/session/session_schema.xml";s:4:"6443";s:33:"adodb/session/session_schema2.xml";s:4:"3409";s:40:"adodb/session/old/adodb-cryptsession.php";s:4:"47b7";s:40:"adodb/session/old/adodb-session-clob.php";s:4:"4415";s:35:"adodb/session/old/adodb-session.php";s:4:"4538";s:31:"adodb/session/old/crypt.inc.php";s:4:"5a4e";s:25:"adodb/tests/benchmark.php";s:4:"0c86";s:22:"adodb/tests/client.php";s:4:"bcce";s:19:"adodb/tests/pdo.php";s:4:"9688";s:18:"adodb/tests/rr.htm";s:4:"abeb";s:34:"adodb/tests/test-active-record.php";s:4:"9d06";s:33:"adodb/tests/test-active-recs2.php";s:4:"2f5e";s:29:"adodb/tests/test-datadict.php";s:4:"1c50";s:25:"adodb/tests/test-perf.php";s:4:"b95e";s:27:"adodb/tests/test-pgblob.php";s:4:"62b6";s:25:"adodb/tests/test-php5.php";s:4:"b804";s:30:"adodb/tests/test-xmlschema.php";s:4:"c64f";s:20:"adodb/tests/test.php";s:4:"e58a";s:21:"adodb/tests/test2.php";s:4:"384b";s:21:"adodb/tests/test3.php";s:4:"dd69";s:21:"adodb/tests/test4.php";s:4:"045f";s:21:"adodb/tests/test5.php";s:4:"023a";s:29:"adodb/tests/test_rs_array.php";s:4:"1ccf";s:25:"adodb/tests/testcache.php";s:4:"1ff5";s:33:"adodb/tests/testdatabases.inc.php";s:4:"83b7";s:25:"adodb/tests/testgenid.php";s:4:"1576";s:25:"adodb/tests/testmssql.php";s:4:"42d3";s:24:"adodb/tests/testoci8.php";s:4:"e01d";s:30:"adodb/tests/testoci8cursor.php";s:4:"cf50";s:26:"adodb/tests/testpaging.php";s:4:"5e94";s:24:"adodb/tests/testpear.php";s:4:"83e8";s:28:"adodb/tests/testsessions.php";s:4:"439c";s:20:"adodb/tests/time.php";s:4:"b158";s:22:"adodb/tests/tmssql.php";s:4:"3d7a";s:31:"adodb/tests/xmlschema-mssql.xml";s:4:"38cd";s:25:"adodb/tests/xmlschema.xml";s:4:"d0b4";s:29:"adodb/xsl/convert-0.1-0.2.xsl";s:4:"29d9";s:29:"adodb/xsl/convert-0.1-0.3.xsl";s:4:"6aad";s:29:"adodb/xsl/convert-0.2-0.1.xsl";s:4:"5d27";s:29:"adodb/xsl/convert-0.2-0.3.xsl";s:4:"4098";s:24:"adodb/xsl/remove-0.2.xsl";s:4:"0b2b";s:24:"adodb/xsl/remove-0.3.xsl";s:4:"678d";s:18:"doc/493.DBAL.patch";s:4:"b999";s:10:"doc/README";s:4:"d375";s:25:"doc/mssql-error-fix.patch";s:4:"8757";s:23:"res/checkconnection.gif";s:4:"1760";}',
+       'version' => '4.94.0',
+       '_md5_values_when_last_written' => 'a:199:{s:25:"checkconnectionwizard.php";s:4:"8600";s:27:"class.tx_adodb_tceforms.php";s:4:"5ad6";s:26:"datasource_flexform_ds.xml";s:4:"96fb";s:12:"ext_icon.gif";s:4:"c778";s:17:"ext_localconf.php";s:4:"6ec5";s:31:"locallang_datasource_config.xml";s:4:"df55";s:20:"locallang_wizard.xml";s:4:"dca8";s:33:"adodb/adodb-active-record.inc.php";s:4:"f467";s:26:"adodb/adodb-csvlib.inc.php";s:4:"64b4";s:28:"adodb/adodb-datadict.inc.php";s:4:"ec0b";s:25:"adodb/adodb-error.inc.php";s:4:"48fd";s:32:"adodb/adodb-errorhandler.inc.php";s:4:"de51";s:29:"adodb/adodb-errorpear.inc.php";s:4:"21c0";s:30:"adodb/adodb-exceptions.inc.php";s:4:"3990";s:28:"adodb/adodb-iterator.inc.php";s:4:"5d8e";s:23:"adodb/adodb-lib.inc.php";s:4:"311b";s:32:"adodb/adodb-memcache.lib.inc.php";s:4:"747b";s:25:"adodb/adodb-pager.inc.php";s:4:"d170";s:24:"adodb/adodb-pear.inc.php";s:4:"eb28";s:24:"adodb/adodb-perf.inc.php";s:4:"839a";s:24:"adodb/adodb-php4.inc.php";s:4:"a759";s:24:"adodb/adodb-time.inc.php";s:4:"896a";s:29:"adodb/adodb-xmlschema.inc.php";s:4:"4611";s:31:"adodb/adodb-xmlschema03.inc.php";s:4:"4c7e";s:19:"adodb/adodb.inc.php";s:4:"3717";s:17:"adodb/license.txt";s:4:"af93";s:24:"adodb/pivottable.inc.php";s:4:"b05b";s:16:"adodb/readme.txt";s:4:"a2d2";s:22:"adodb/rsfilter.inc.php";s:4:"c464";s:16:"adodb/server.php";s:4:"7e2b";s:22:"adodb/toexport.inc.php";s:4:"09fd";s:20:"adodb/tohtml.inc.php";s:4:"709d";s:19:"adodb/xmlschema.dtd";s:4:"26f3";s:21:"adodb/xmlschema03.dtd";s:4:"fa85";s:30:"adodb/contrib/toxmlrpc.inc.php";s:4:"4c40";s:35:"adodb/cute_icons_for_site/adodb.gif";s:4:"9430";s:36:"adodb/cute_icons_for_site/adodb2.gif";s:4:"f540";s:38:"adodb/datadict/datadict-access.inc.php";s:4:"b39a";s:35:"adodb/datadict/datadict-db2.inc.php";s:4:"e0ff";s:40:"adodb/datadict/datadict-firebird.inc.php";s:4:"a361";s:39:"adodb/datadict/datadict-generic.inc.php";s:4:"a3c4";s:37:"adodb/datadict/datadict-ibase.inc.php";s:4:"4f0b";s:40:"adodb/datadict/datadict-informix.inc.php";s:4:"6f7d";s:37:"adodb/datadict/datadict-mssql.inc.php";s:4:"2ec2";s:37:"adodb/datadict/datadict-mysql.inc.php";s:4:"09a5";s:36:"adodb/datadict/datadict-oci8.inc.php";s:4:"f1ef";s:40:"adodb/datadict/datadict-postgres.inc.php";s:4:"c5c5";s:37:"adodb/datadict/datadict-sapdb.inc.php";s:4:"aa27";s:38:"adodb/datadict/datadict-sybase.inc.php";s:4:"ac80";s:33:"adodb/docs/docs-active-record.htm";s:4:"9265";s:25:"adodb/docs/docs-adodb.htm";s:4:"7235";s:28:"adodb/docs/docs-datadict.htm";s:4:"d9b3";s:26:"adodb/docs/docs-oracle.htm";s:4:"2c7d";s:24:"adodb/docs/docs-perf.htm";s:4:"5efa";s:27:"adodb/docs/docs-session.htm";s:4:"7d8a";s:31:"adodb/docs/docs-session.old.htm";s:4:"de59";s:28:"adodb/docs/old-changelog.htm";s:4:"340a";s:21:"adodb/docs/readme.htm";s:4:"635b";s:32:"adodb/docs/tips_portable_sql.htm";s:4:"1ad0";s:19:"adodb/docs/tute.htm";s:4:"a22b";s:34:"adodb/drivers/adodb-access.inc.php";s:4:"3505";s:31:"adodb/drivers/adodb-ado.inc.php";s:4:"7c39";s:32:"adodb/drivers/adodb-ado5.inc.php";s:4:"4017";s:38:"adodb/drivers/adodb-ado_access.inc.php";s:4:"c94e";s:37:"adodb/drivers/adodb-ado_mssql.inc.php";s:4:"f6e6";s:41:"adodb/drivers/adodb-borland_ibase.inc.php";s:4:"b433";s:31:"adodb/drivers/adodb-csv.inc.php";s:4:"e7ce";s:31:"adodb/drivers/adodb-db2.inc.php";s:4:"9992";s:33:"adodb/drivers/adodb-fbsql.inc.php";s:4:"6df2";s:36:"adodb/drivers/adodb-firebird.inc.php";s:4:"91e1";s:33:"adodb/drivers/adodb-ibase.inc.php";s:4:"c268";s:36:"adodb/drivers/adodb-informix.inc.php";s:4:"5377";s:38:"adodb/drivers/adodb-informix72.inc.php";s:4:"f008";s:32:"adodb/drivers/adodb-ldap.inc.php";s:4:"1db9";s:33:"adodb/drivers/adodb-mssql.inc.php";s:4:"49be";s:35:"adodb/drivers/adodb-mssqlpo.inc.php";s:4:"d6f4";s:33:"adodb/drivers/adodb-mysql.inc.php";s:4:"7c41";s:34:"adodb/drivers/adodb-mysqli.inc.php";s:4:"e46b";s:34:"adodb/drivers/adodb-mysqlt.inc.php";s:4:"5d6d";s:35:"adodb/drivers/adodb-netezza.inc.php";s:4:"11ca";s:32:"adodb/drivers/adodb-oci8.inc.php";s:4:"8c73";s:34:"adodb/drivers/adodb-oci805.inc.php";s:4:"5d72";s:34:"adodb/drivers/adodb-oci8po.inc.php";s:4:"58cc";s:32:"adodb/drivers/adodb-odbc.inc.php";s:4:"0f5d";s:36:"adodb/drivers/adodb-odbc_db2.inc.php";s:4:"e468";s:38:"adodb/drivers/adodb-odbc_mssql.inc.php";s:4:"bd54";s:39:"adodb/drivers/adodb-odbc_oracle.inc.php";s:4:"f279";s:33:"adodb/drivers/adodb-odbtp.inc.php";s:4:"20b8";s:41:"adodb/drivers/adodb-odbtp_unicode.inc.php";s:4:"e8a3";s:34:"adodb/drivers/adodb-oracle.inc.php";s:4:"a41c";s:31:"adodb/drivers/adodb-pdo.inc.php";s:4:"2dbc";s:37:"adodb/drivers/adodb-pdo_mssql.inc.php";s:4:"d874";s:37:"adodb/drivers/adodb-pdo_mysql.inc.php";s:4:"4b35";s:35:"adodb/drivers/adodb-pdo_oci.inc.php";s:4:"3be0";s:37:"adodb/drivers/adodb-pdo_pgsql.inc.php";s:4:"706b";s:36:"adodb/drivers/adodb-postgres.inc.php";s:4:"d73a";s:38:"adodb/drivers/adodb-postgres64.inc.php";s:4:"002a";s:37:"adodb/drivers/adodb-postgres7.inc.php";s:4:"bc47";s:37:"adodb/drivers/adodb-postgres8.inc.php";s:4:"23eb";s:33:"adodb/drivers/adodb-proxy.inc.php";s:4:"cf98";s:33:"adodb/drivers/adodb-sapdb.inc.php";s:4:"6dcc";s:39:"adodb/drivers/adodb-sqlanywhere.inc.php";s:4:"9b5c";s:34:"adodb/drivers/adodb-sqlite.inc.php";s:4:"15e7";s:36:"adodb/drivers/adodb-sqlitepo.inc.php";s:4:"503b";s:34:"adodb/drivers/adodb-sybase.inc.php";s:4:"3155";s:38:"adodb/drivers/adodb-sybase_ase.inc.php";s:4:"0a30";s:31:"adodb/drivers/adodb-vfp.inc.php";s:4:"6ceb";s:27:"adodb/lang/adodb-ar.inc.php";s:4:"6f2a";s:27:"adodb/lang/adodb-bg.inc.php";s:4:"666d";s:31:"adodb/lang/adodb-bgutf8.inc.php";s:4:"6316";s:27:"adodb/lang/adodb-ca.inc.php";s:4:"9306";s:27:"adodb/lang/adodb-cn.inc.php";s:4:"c8e1";s:27:"adodb/lang/adodb-cz.inc.php";s:4:"0339";s:27:"adodb/lang/adodb-da.inc.php";s:4:"2ea2";s:27:"adodb/lang/adodb-de.inc.php";s:4:"6e6e";s:27:"adodb/lang/adodb-en.inc.php";s:4:"0820";s:27:"adodb/lang/adodb-es.inc.php";s:4:"de07";s:34:"adodb/lang/adodb-esperanto.inc.php";s:4:"32b9";s:27:"adodb/lang/adodb-fr.inc.php";s:4:"237c";s:27:"adodb/lang/adodb-hu.inc.php";s:4:"f308";s:27:"adodb/lang/adodb-it.inc.php";s:4:"ae50";s:27:"adodb/lang/adodb-nl.inc.php";s:4:"ed3d";s:27:"adodb/lang/adodb-pl.inc.php";s:4:"333e";s:30:"adodb/lang/adodb-pt-br.inc.php";s:4:"e63b";s:27:"adodb/lang/adodb-ro.inc.php";s:4:"779e";s:31:"adodb/lang/adodb-ru1251.inc.php";s:4:"43c8";s:27:"adodb/lang/adodb-sv.inc.php";s:4:"2e5a";s:31:"adodb/lang/adodb-uk1251.inc.php";s:4:"3203";s:26:"adodb/pear/readme.Auth.txt";s:4:"87dd";s:35:"adodb/pear/Auth/Container/ADOdb.php";s:4:"3787";s:27:"adodb/perf/perf-db2.inc.php";s:4:"74c0";s:32:"adodb/perf/perf-informix.inc.php";s:4:"b33d";s:29:"adodb/perf/perf-mssql.inc.php";s:4:"191e";s:29:"adodb/perf/perf-mysql.inc.php";s:4:"3cef";s:28:"adodb/perf/perf-oci8.inc.php";s:4:"6b30";s:32:"adodb/perf/perf-postgres.inc.php";s:4:"4fe3";s:38:"adodb/session/adodb-compress-bzip2.php";s:4:"2527";s:37:"adodb/session/adodb-compress-gzip.php";s:4:"3298";s:36:"adodb/session/adodb-cryptsession.php";s:4:"414a";s:37:"adodb/session/adodb-cryptsession2.php";s:4:"ad6a";s:38:"adodb/session/adodb-encrypt-mcrypt.php";s:4:"4048";s:35:"adodb/session/adodb-encrypt-md5.php";s:4:"62b8";s:38:"adodb/session/adodb-encrypt-secret.php";s:4:"ff20";s:36:"adodb/session/adodb-encrypt-sha1.php";s:4:"5c92";s:28:"adodb/session/adodb-sess.txt";s:4:"a25a";s:36:"adodb/session/adodb-session-clob.php";s:4:"bb48";s:37:"adodb/session/adodb-session-clob2.php";s:4:"6c42";s:31:"adodb/session/adodb-session.php";s:4:"6988";s:32:"adodb/session/adodb-session2.php";s:4:"5511";s:38:"adodb/session/adodb-sessions.mysql.sql";s:4:"42fe";s:44:"adodb/session/adodb-sessions.oracle.clob.sql";s:4:"3c64";s:39:"adodb/session/adodb-sessions.oracle.sql";s:4:"08d0";s:27:"adodb/session/crypt.inc.php";s:4:"4dad";s:32:"adodb/session/session_schema.xml";s:4:"6443";s:33:"adodb/session/session_schema2.xml";s:4:"3409";s:40:"adodb/session/old/adodb-cryptsession.php";s:4:"0fcf";s:40:"adodb/session/old/adodb-session-clob.php";s:4:"e2e1";s:35:"adodb/session/old/adodb-session.php";s:4:"aeff";s:31:"adodb/session/old/crypt.inc.php";s:4:"5a4e";s:25:"adodb/tests/benchmark.php";s:4:"fd36";s:22:"adodb/tests/client.php";s:4:"bcce";s:19:"adodb/tests/pdo.php";s:4:"9688";s:18:"adodb/tests/rr.htm";s:4:"abeb";s:34:"adodb/tests/test-active-record.php";s:4:"9d06";s:33:"adodb/tests/test-active-recs2.php";s:4:"2f5e";s:29:"adodb/tests/test-datadict.php";s:4:"c634";s:25:"adodb/tests/test-perf.php";s:4:"f236";s:27:"adodb/tests/test-pgblob.php";s:4:"62b6";s:25:"adodb/tests/test-php5.php";s:4:"5efd";s:30:"adodb/tests/test-xmlschema.php";s:4:"c64f";s:20:"adodb/tests/test.php";s:4:"09a9";s:21:"adodb/tests/test2.php";s:4:"24ae";s:21:"adodb/tests/test3.php";s:4:"b005";s:21:"adodb/tests/test4.php";s:4:"9334";s:21:"adodb/tests/test5.php";s:4:"5282";s:29:"adodb/tests/test_rs_array.php";s:4:"1ccf";s:25:"adodb/tests/testcache.php";s:4:"6e3e";s:33:"adodb/tests/testdatabases.inc.php";s:4:"91b6";s:25:"adodb/tests/testgenid.php";s:4:"43b1";s:25:"adodb/tests/testmssql.php";s:4:"4149";s:24:"adodb/tests/testoci8.php";s:4:"1569";s:30:"adodb/tests/testoci8cursor.php";s:4:"3235";s:26:"adodb/tests/testpaging.php";s:4:"b3b3";s:24:"adodb/tests/testpear.php";s:4:"b2aa";s:28:"adodb/tests/testsessions.php";s:4:"cbc3";s:20:"adodb/tests/time.php";s:4:"b4ab";s:22:"adodb/tests/tmssql.php";s:4:"3d7a";s:31:"adodb/tests/xmlschema-mssql.xml";s:4:"38cd";s:25:"adodb/tests/xmlschema.xml";s:4:"d0b4";s:29:"adodb/xsl/convert-0.1-0.2.xsl";s:4:"29d9";s:29:"adodb/xsl/convert-0.1-0.3.xsl";s:4:"6aad";s:29:"adodb/xsl/convert-0.2-0.1.xsl";s:4:"5d27";s:29:"adodb/xsl/convert-0.2-0.3.xsl";s:4:"4098";s:24:"adodb/xsl/remove-0.2.xsl";s:4:"0b2b";s:24:"adodb/xsl/remove-0.3.xsl";s:4:"678d";s:18:"doc/494.DBAL.patch";s:4:"b563";s:10:"doc/README";s:4:"d375";s:25:"doc/mssql-error-fix.patch";s:4:"8757";s:23:"res/checkconnection.gif";s:4:"1760";}',
        'constraints' => array(
                'depends' => array(
-                       'php' => '4.1.0-',
-                       'typo3' => '3.0.0-',
+                       'php' => '4.1.0-0.0.0',
+                       'typo3' => '3.5.0-0.0.0',
                ),
                'conflicts' => array(
                ),