phpgroupware-cvs
[Top][All Lists]
Advanced

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

[Phpgroupware-cvs] phpgwapi/inc/adodb adodb-active-record.inc.php ...


From: Sigurd Nes
Subject: [Phpgroupware-cvs] phpgwapi/inc/adodb adodb-active-record.inc.php ...
Date: Thu, 22 Jun 2006 09:06:38 +0000

CVSROOT:        /sources/phpgwapi
Module name:    phpgwapi
Changes by:     Sigurd Nes <sigurdne>   06/06/22 09:06:37

Modified files:
        inc/adodb      : adodb-active-record.inc.php 
                         adodb-csvlib.inc.php adodb-datadict.inc.php 
                         adodb-error.inc.php adodb-errorhandler.inc.php 
                         adodb-errorpear.inc.php 
                         adodb-exceptions.inc.php adodb-iterator.inc.php 
                         adodb-lib.inc.php adodb-pager.inc.php 
                         adodb-pear.inc.php adodb-perf.inc.php 
                         adodb-php4.inc.php adodb-time.inc.php 
                         adodb-xmlschema.inc.php 
                         adodb-xmlschema03.inc.php adodb.inc.php 
                         pivottable.inc.php rsfilter.inc.php server.php 
                         toexport.inc.php tohtml.inc.php 
        inc/adodb/datadict: datadict-access.inc.php datadict-db2.inc.php 
                            datadict-firebird.inc.php 
                            datadict-generic.inc.php 
                            datadict-ibase.inc.php 
                            datadict-informix.inc.php 
                            datadict-mssql.inc.php 
                            datadict-mysql.inc.php datadict-oci8.inc.php 
                            datadict-postgres.inc.php 
                            datadict-sapdb.inc.php 
                            datadict-sybase.inc.php 
        inc/adodb/docs : docs-active-record.htm docs-adodb.htm 
                         docs-datadict.htm docs-oracle.htm docs-perf.htm 
                         docs-session.htm 
        inc/adodb/drivers: adodb-access.inc.php adodb-ado.inc.php 
                           adodb-ado5.inc.php adodb-ado_access.inc.php 
                           adodb-ado_mssql.inc.php 
                           adodb-borland_ibase.inc.php adodb-csv.inc.php 
                           adodb-db2.inc.php adodb-fbsql.inc.php 
                           adodb-firebird.inc.php adodb-ibase.inc.php 
                           adodb-informix.inc.php 
                           adodb-informix72.inc.php adodb-ldap.inc.php 
                           adodb-mssql.inc.php adodb-mssqlpo.inc.php 
                           adodb-mysql.inc.php adodb-mysqli.inc.php 
                           adodb-mysqlt.inc.php adodb-netezza.inc.php 
                           adodb-oci8.inc.php adodb-oci805.inc.php 
                           adodb-oci8po.inc.php adodb-odbc.inc.php 
                           adodb-odbc_db2.inc.php 
                           adodb-odbc_mssql.inc.php 
                           adodb-odbc_oracle.inc.php adodb-odbtp.inc.php 
                           adodb-odbtp_unicode.inc.php 
                           adodb-oracle.inc.php adodb-pdo.inc.php 
                           adodb-pdo_mssql.inc.php 
                           adodb-pdo_mysql.inc.php adodb-pdo_oci.inc.php 
                           adodb-pdo_pgsql.inc.php 
                           adodb-postgres.inc.php 
                           adodb-postgres64.inc.php 
                           adodb-postgres7.inc.php 
                           adodb-postgres8.inc.php adodb-proxy.inc.php 
                           adodb-sapdb.inc.php adodb-sqlanywhere.inc.php 
                           adodb-sqlite.inc.php adodb-sqlitepo.inc.php 
                           adodb-sybase.inc.php adodb-sybase_ase.inc.php 
                           adodb-vfp.inc.php 
        inc/adodb/pear/Auth/Container: ADOdb.php 
        inc/adodb/perf : perf-db2.inc.php perf-informix.inc.php 
                         perf-mssql.inc.php perf-mysql.inc.php 
                         perf-oci8.inc.php perf-postgres.inc.php 
        inc/adodb/session: adodb-compress-bzip2.php 
                           adodb-compress-gzip.php 
                           adodb-cryptsession.php 
                           adodb-encrypt-mcrypt.php 
                           adodb-encrypt-md5.php 
                           adodb-encrypt-secret.php 
                           adodb-session-clob.php adodb-session.php 
                           adodb-sessions.mysql.sql 
                           adodb-sessions.oracle.clob.sql 
                           adodb-sessions.oracle.sql 
        inc/adodb/session/old: adodb-cryptsession.php 
                               adodb-session-clob.php adodb-session.php 
        inc/adodb/tests: benchmark.php client.php rr.htm 
                         test-active-recs2.php test-datadict.php 
                         test-php5.php test.php test3.php test4.php 
                         test5.php testcache.php testdatabases.inc.php 
                         testmssql.php testoci8.php testoci8cursor.php 
                         testpaging.php testpear.php testsessions.php 
Removed files:
        inc/adodb      : adodb-time.zip 

Log message:
        update to latest and greatest from upstream 4.9.0 released 8-Jun-2006

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-active-record.inc.php?cvsroot=phpgwapi&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-csvlib.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-datadict.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-error.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-errorhandler.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-errorpear.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-exceptions.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-iterator.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-lib.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-pager.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-pear.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-perf.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-php4.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-time.inc.php?cvsroot=phpgwapi&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-xmlschema.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-xmlschema03.inc.php?cvsroot=phpgwapi&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/pivottable.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/rsfilter.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/server.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/toexport.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tohtml.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/adodb-time.zip?cvsroot=phpgwapi&r1=1.2&r2=0
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-access.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-db2.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-firebird.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-generic.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-ibase.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-informix.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-mssql.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-mysql.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-oci8.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-postgres.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-sapdb.inc.php?cvsroot=phpgwapi&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/datadict/datadict-sybase.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/docs/docs-active-record.htm?cvsroot=phpgwapi&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/docs/docs-adodb.htm?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/docs/docs-datadict.htm?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/docs/docs-oracle.htm?cvsroot=phpgwapi&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/docs/docs-perf.htm?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/docs/docs-session.htm?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-access.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-ado.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-ado5.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-ado_access.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-ado_mssql.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-borland_ibase.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-csv.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-db2.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-fbsql.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-firebird.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-ibase.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-informix.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-informix72.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-ldap.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-mssql.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-mssqlpo.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-mysql.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-mysqli.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-mysqlt.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-netezza.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-oci8.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-oci805.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-oci8po.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-odbc.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-odbc_db2.inc.php?cvsroot=phpgwapi&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-odbc_mssql.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-odbc_oracle.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-odbtp.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-odbtp_unicode.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-oracle.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-pdo.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-pdo_mssql.inc.php?cvsroot=phpgwapi&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-pdo_mysql.inc.php?cvsroot=phpgwapi&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-pdo_oci.inc.php?cvsroot=phpgwapi&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-pdo_pgsql.inc.php?cvsroot=phpgwapi&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-postgres.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-postgres64.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-postgres7.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-postgres8.inc.php?cvsroot=phpgwapi&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-proxy.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-sapdb.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-sqlanywhere.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-sqlite.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-sqlitepo.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-sybase.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-sybase_ase.inc.php?cvsroot=phpgwapi&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/drivers/adodb-vfp.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/pear/Auth/Container/ADOdb.php?cvsroot=phpgwapi&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/perf/perf-db2.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/perf/perf-informix.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/perf/perf-mssql.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/perf/perf-mysql.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/perf/perf-oci8.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/perf/perf-postgres.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/adodb-compress-bzip2.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/adodb-compress-gzip.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/adodb-cryptsession.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/adodb-encrypt-mcrypt.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/adodb-encrypt-md5.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/adodb-encrypt-secret.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/adodb-session-clob.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/adodb-session.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/adodb-sessions.mysql.sql?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/adodb-sessions.oracle.clob.sql?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/adodb-sessions.oracle.sql?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/old/adodb-cryptsession.php?cvsroot=phpgwapi&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/old/adodb-session-clob.php?cvsroot=phpgwapi&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/session/old/adodb-session.php?cvsroot=phpgwapi&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/benchmark.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/client.php?cvsroot=phpgwapi&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/rr.htm?cvsroot=phpgwapi&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/test-active-recs2.php?cvsroot=phpgwapi&r1=1.1&r2=1.2
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/test-datadict.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/test-php5.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/test.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/test3.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/test4.php?cvsroot=phpgwapi&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/test5.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/testcache.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/testdatabases.inc.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/testmssql.php?cvsroot=phpgwapi&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/testoci8.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/testoci8cursor.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/testpaging.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/testpear.php?cvsroot=phpgwapi&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/phpgwapi/inc/adodb/tests/testsessions.php?cvsroot=phpgwapi&r1=1.4&r2=1.5

Patches:
Index: adodb-active-record.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-active-record.inc.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- adodb-active-record.inc.php 18 Mar 2006 16:53:16 -0000      1.1
+++ adodb-active-record.inc.php 22 Jun 2006 09:06:36 -0000      1.2
@@ -1,7 +1,7 @@
 <?php
 /*
 
address@hidden V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). 
All rights reserved.
address@hidden V4.90 8 June 2006  (c) 2000-2006 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,10 +10,14 @@
   
   Active Record implementation. Superset of Zend Framework's.
   
-  Version 0.02
+  Version 0.04
+  
+  See 
http://www-128.ibm.com/developerworks/java/library/j-cb03076/?ca=dgr-lnxw01ActiveRecord
 
+       for info on Ruby on Rails Active Record implementation
 */
 
 global $_ADODB_ACTIVE_DBS;
+global $ADODB_ACTIVE_CACHESECS; // set to true to enable caching of metadata 
such as field info
 
 // array of ADODB_Active_DB's, indexed by ADODB_Active_Record->_dbat
 $_ADODB_ACTIVE_DBS = array();
@@ -28,6 +32,7 @@
        var $name; // table name
        var $flds; // assoc array of adofieldobjs, indexed by fieldname
        var $keys; // assoc array of primary keys, indexed by fieldname
+       var $_created; // only used when stored as a cached file
 }
 
 // returns index into $_ADODB_ACTIVE_DBS
@@ -48,13 +53,15 @@
                return sizeof($_ADODB_ACTIVE_DBS)-1;
 }
 
+
 class ADODB_Active_Record {
        var $_dbat; // associative index pointing to ADODB_Active_DB eg. 
$ADODB_Active_DBS[_dbat]
-       var $_table; // tablename
+       var $_table; // tablename, if set in class definition then use it as 
table name
        var $_tableat; // associative index pointing to ADODB_Active_Table, eg 
$ADODB_Active_DBS[_dbat]->tables[$this->_tableat]
        var $_where; // where clause set in Load()
        var $_saved = false; // indicates whether data is already inserted.
        var $_lasterr = false; // last error message
+       var $_original = false; // the original values loaded or inserted, 
refreshed on update
        
        // should be static
        function SetDatabaseAdapter(&$db) 
@@ -78,8 +85,10 @@
                        $pkeyarr = false;
                }
                
-               if (!$table) $table = $this->_pluralize(get_class($this));
-               
+               if (!$table) { 
+                       if (!empty($this->_table)) $table = $this->_table;
+                       else $table = $this->_pluralize(get_class($this));
+               }
                if ($db) {
                        $this->_dbat = 
ADODB_Active_Record::SetDatabaseAdapter($db);
                } else
@@ -119,7 +128,7 @@
        // update metadata
        function UpdateActiveTable($pkeys=false,$forceUpdate=false)
        {
-       global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS;
+       global $ADODB_ASSOC_CASE,$_ADODB_ACTIVE_DBS , $ADODB_CACHE_DIR, 
$ADODB_ACTIVE_CACHESECS;
        
                $activedb =& $_ADODB_ACTIVE_DBS[$this->_dbat];
 
@@ -133,10 +142,27 @@
                        return;
                }
                
+               $db =& $activedb->db;
+               $fname = $ADODB_CACHE_DIR . '/adodb_' . $db->databaseType . 
'_active_'. $table . '.cache';
+               if (!$forceUpdate && $ADODB_ACTIVE_CACHESECS && 
$ADODB_CACHE_DIR && file_exists($fname)) {
+                       $fp = fopen($fname,'r');
+                       @flock($fp, LOCK_SH);
+                       $acttab = unserialize(fread($fp,100000));
+                       fclose($fp);
+                       if ($acttab->_created + $ADODB_ACTIVE_CACHESECS - 
(abs(rand()) % 16) > time()) { 
+                               // abs(rand()) randomizes deletion, reducing 
contention to delete/refresh file
+                               // ideally, you should cache at least 32 secs
+                               $activedb->tables[$table] = $acttab;
+                               
+                               //if ($db->debug) ADOConnection::outp("Reading 
cached active record file: $fname");
+                               return;
+                       } else if ($db->debug) {
+                               ADOConnection::outp("Refreshing cached active 
record file: $fname");
+                       }
+               }
                $activetab = new ADODB_Active_Table();
                $activetab->name = $table;
                
-               $db =& $activedb->db;
                
                $cols = $db->MetaColumns($table);
                if (!$cols) {
@@ -198,6 +224,13 @@
                
                $activetab->keys = $keys;
                $activetab->flds = $attr;
+
+               if ($ADODB_ACTIVE_CACHESECS && $ADODB_CACHE_DIR) {
+                       $activetab->_created = time();
+                       $s = serialize($activetab);
+                       if (!function_exists('adodb_write_file')) 
include(ADODB_DIR.'/adodb-csvlib.inc.php');
+                       adodb_write_file($fname,$s);
+               }
                $activedb->tables[$table] = $activetab;
        }
        
@@ -289,7 +322,7 @@
                        $this->$name = $row[$cnt];
                        $cnt += 1;
                }
-               #$this->_original =& $row;
+               $this->_original = $row;
                return true;
        }
        
@@ -410,7 +443,7 @@
                        }
                }
                
-               #$this->_original =& $valarr;
+               $this->_original = $valarr;
                return !empty($ok);
        }
        
@@ -424,6 +457,13 @@
                $db->Execute($sql);
        }
        
+       // returns an array of active record objects
+       function &Find($whereOrderBy,$bindarr=false,$pkeysArr=false)
+       {
+               $db =& $this->DB(); if (!$db || empty($this->_table)) return 
false;
+               $arr =& 
$db->GetActiveRecordsClass(get_class($this),$this->_table, 
$whereOrderBy,$bindarr,$pkeysArr);
+               return $arr;
+       }
        
        // returns 0 on error, 1 on update, 2 on insert
        function Replace()
@@ -447,6 +487,9 @@
                                        }
                                }
                        }*/
+                       if (is_null($val) && !empty($fld->auto_increment)) {
+               continue;
+            }
                        $t = $db->MetaType($fld->type);
                        $arr[$name] = $this->doquote($db,$val,$t);
                        $valarr[] = $val;
@@ -479,12 +522,12 @@
                                }
                        }
                        
-                       #$this->_original =& $valarr;
+                       $this->_original =& $valarr;
                } 
                return $ok;
        }
 
-       // returns false on error
+       // returns 0 on error, 1 on update, -1 if no change in data (no update)
        function Update()
        {
                $db =& $this->DB(); if (!$db) return false;
@@ -496,11 +539,20 @@
                        $this->error("Where missing for table $table", 
"Update");
                        return false;
                }
+               $valarr = array(); 
+               $neworig = array();
+               $pairs = array();
+               $i = -1;
                $cnt = 0;
                foreach($table->flds as $name=>$fld) {
-                       if (isset($table->keys[$name])) continue;
-                       
+                       $i += 1;
                        $val = $this->$name;
+                       $neworig[] = $val;
+                       
+                       if (isset($table->keys[$name])) {
+                               continue;
+                       }
+                       
                        
                        if (is_null($val)) {
                                if (isset($fld->not_null) && $fld->not_null) {
@@ -511,17 +563,24 @@
                                        }
                                }
                        }
+                       
+                       if ( $val == $this->_original[$i]) {
+                               continue;
+                       }                       
                        $valarr[] = $val;
                        $pairs[] = $name.'='.$db->Param($cnt);
                        $cnt += 1;
                }
                
-               #$this->_original =& $valarr;
                
+               if (!$cnt) return -1;
                $sql = 'UPDATE '.$this->_table." SET ".implode(",",$pairs)." 
WHERE ".$where;
                $ok = $db->Execute($sql,$valarr);
-               
-               return !empty($ok);
+               if ($ok) {
+                       $this->_original =& $neworig;
+                       return 1;
+               }
+               return 0;
        }
        
        function GetAttributeNames()

Index: adodb-csvlib.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-csvlib.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-csvlib.inc.php        18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-csvlib.inc.php        22 Jun 2006 09:06:36 -0000      1.5
@@ -8,7 +8,7 @@
 
 /* 
 
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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. 

Index: adodb-datadict.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-datadict.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-datadict.inc.php      18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-datadict.inc.php      22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: adodb-error.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-error.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-error.inc.php 18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-error.inc.php 22 Jun 2006 09:06:36 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /** 
- * @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version 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. 

Index: adodb-errorhandler.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-errorhandler.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-errorhandler.inc.php  18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-errorhandler.inc.php  22 Jun 2006 09:06:36 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /**
- * @version V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version 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.

Index: adodb-errorpear.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-errorpear.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-errorpear.inc.php     18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-errorpear.inc.php     22 Jun 2006 09:06:36 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /** 
- * @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version 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. 

Index: adodb-exceptions.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-exceptions.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-exceptions.inc.php    18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-exceptions.inc.php    22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
- * @version V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version 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.

Index: adodb-iterator.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-iterator.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-iterator.inc.php      18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-iterator.inc.php      22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /*
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: adodb-lib.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-lib.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-lib.inc.php   18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-lib.inc.php   22 Jun 2006 09:06:36 -0000      1.5
@@ -7,7 +7,7 @@
 $ADODB_INCLUDED_LIB = 1;
 
 /* 
- @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+ @version V4.90 8 June 2006 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
   Released under both BSD license and Lesser GPL library license. 
   Whenever there is any discrepancy between the two licenses, 
   the BSD license will take precedence. See License.txt. 
@@ -325,6 +325,8 @@
                $rewritesql = preg_replace(
                                        '/^\s*SELECT\s.*\s+FROM\s/Uis','SELECT 
COUNT(*) FROM ',$sql);
 
+               
+               
                // fix by alexander zhukov, alex#unipack.ru, because count(*) 
and 'order by' fails 
                // with mssql, access and postgresql. Also a good speedup 
optimization - skips sorting!
                // also see http://phplens.com/lens/lensforum/msgs.php?id=12752
@@ -332,10 +334,13 @@
                        $rewritesql = 
preg_replace('/(\sORDER\s+BY\s.*)/is','',$rewritesql);
                else
                        $rewritesql = 
preg_replace('/(\sORDER\s+BY\s[^)]*)/is','',$rewritesql);
-                
        }
        
+       
+       
        if (isset($rewritesql) && $rewritesql != $sql) {
+               if (preg_match('/\sLIMIT\s+[0-9]+/i',$sql,$limitarr)) 
$rewritesql .= $limitarr[1];
+                
                if ($secs2cache) {
                        // we only use half the time of secs2cache because the 
count can quickly
                        // become inaccurate if new records are added
@@ -354,6 +359,8 @@
        if (preg_match('/\s*UNION\s*/is', $sql)) $rewritesql = $sql;
        else $rewritesql = preg_replace('/(\sORDER\s+BY\s.*)/is','',$sql); 
        
+       if (preg_match('/\sLIMIT\s+[0-9]+/i',$sql,$limitarr)) $rewritesql .= 
$limitarr[0];
+               
        $rstest = &$zthis->Execute($rewritesql,$inputarr);
        if (!$rstest) $rstest = $zthis->Execute($sql,$inputarr);
        
@@ -1017,5 +1024,47 @@
        
        return $s;
 }
+/*
+function _adodb_find_from($sql) 
+{
+
+       $sql = str_replace(array("\n","\r"), ' ', $sql);
+       $charCount = strlen($sql);
+       
+       $inString = false;
+       $quote = '';
+       $parentheseCount = 0;
+       $prevChars = '';
+       $nextChars = '';
+       
+
+       for($i = 0; $i < $charCount; $i++) {
+
+       $char = substr($sql,$i,1);
+           $prevChars = substr($sql,0,$i);
+       $nextChars = substr($sql,$i+1);
+
+               if((($char == "'" || $char == '"' || $char == '`') && 
substr($prevChars,-1,1) != '\\') && $inString === false) {
+                       $quote = $char;
+                       $inString = true;
+               }
+
+               elseif((($char == "'" || $char == '"' || $char == '`') && 
substr($prevChars,-1,1) != '\\') && $inString === true && $quote == $char) {
+                       $quote = "";
+                       $inString = false;
+               }
+
+               elseif($char == "(" && $inString === false)
+                       $parentheseCount++;
+
+               elseif($char == ")" && $inString === false && $parentheseCount 
> 0)
+                       $parentheseCount--;
+
+               elseif($parentheseCount <= 0 && $inString === false && $char == 
" " && strtoupper(substr($prevChars,-5,5)) == " FROM")
+                       return $i;
+
+       }
+}
+*/
 
 ?>
\ No newline at end of file

Index: adodb-pager.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-pager.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-pager.inc.php 18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-pager.inc.php 22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /*
-       V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+       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. 

Index: adodb-pear.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-pear.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-pear.inc.php  18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-pear.inc.php  22 Jun 2006 09:06:36 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /** 
- * @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version 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. 

Index: adodb-perf.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-perf.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-perf.inc.php  18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-perf.inc.php  22 Jun 2006 09:06:36 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 
@@ -860,8 +860,11 @@
        {
                if (!$this->createTableSQL) return false;
                
+               $table = $this->table();
+               $sql = str_replace('adodb_logsql',$table,$this->createTableSQL);
+               
                $savelog = $this->conn->LogSQL(false);
-               $ok = $this->conn->Execute($this->createTableSQL);
+               $ok = $this->conn->Execute($sql);
                $this->conn->LogSQL($savelog);
                return ($ok) ? true : false;
        }

Index: adodb-php4.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-php4.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-php4.inc.php  18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-php4.inc.php  22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /*
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: adodb-time.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-time.inc.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- adodb-time.inc.php  21 Feb 2006 13:47:42 -0000      1.3
+++ adodb-time.inc.php  22 Jun 2006 09:06:36 -0000      1.4
@@ -241,6 +241,9 @@
 
 
 CHANGELOG
+- 19 March 2006 0.24
+Changed strftime() locale detection, because some locales prepend the day of 
week to the date when %c is used.
+
 - 10 Feb 2006 0.23
 PHP5 compat: when we detect PHP5, the RFC2822 format for gmt 0000hrs is 
changed from -0000 to +0000. 
        In PHP4, we will still use -0000 for 100% compat with PHP4.
@@ -365,7 +368,7 @@
 /*
        Version Number
 */
-define('ADODB_DATE_VERSION',0.23);
+define('ADODB_DATE_VERSION',0.24);
 
 /*
        This code was originally for windows. But apparently this problem 
happens 
@@ -1239,9 +1242,16 @@
        }
        
        if (empty($ADODB_DATE_LOCALE)) {
+       /*
                $tstr = strtoupper(gmstrftime('%c',31366800)); // 30 Dec 1970, 
1 am
                $sep = substr($tstr,2,1);
                $hasAM = strrpos($tstr,'M') !== false;
+       */
+               # see http://phplens.com/lens/lensforum/msgs.php?id=14865 for 
reasoning, and changelog for version 0.24
+               $dstr = gmstrftime('%x',31366800); // 30 Dec 1970, 1 am
+               $sep = substr($dstr,2,1);
+               $tstr = strtoupper(gmstrftime('%X',31366800)); // 30 Dec 1970, 
1 am
+               $hasAM = strrpos($tstr,'M') !== false;
                
                $ADODB_DATE_LOCALE = array();
                $ADODB_DATE_LOCALE[] =  strncmp($tstr,'30',2) == 0 ? 
'd'.$sep.'m'.$sep.'y' : 'm'.$sep.'d'.$sep.'y';     

Index: adodb-xmlschema.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-xmlschema.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb-xmlschema.inc.php     18 Mar 2006 16:53:16 -0000      1.4
+++ adodb-xmlschema.inc.php     22 Jun 2006 09:06:36 -0000      1.5
@@ -12,7 +12,7 @@
  *
  * Last Editor: $Author: sigurdne $
  * @author Richard Tango-Lowy & Dan Cech
- * @version $Revision: 1.4 $
+ * @version $Revision: 1.5 $
  *
  * @package axmls
  * @tutorial getting_started.pkg
@@ -1209,7 +1209,7 @@
 * @tutorial getting_started.pkg
 *
 * @author Richard Tango-Lowy & Dan Cech
-* @version $Revision: 1.4 $
+* @version $Revision: 1.5 $
 *
 * @package axmls
 */

Index: adodb-xmlschema03.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb-xmlschema03.inc.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- adodb-xmlschema03.inc.php   18 Mar 2006 16:53:16 -0000      1.1
+++ adodb-xmlschema03.inc.php   22 Jun 2006 09:06:36 -0000      1.2
@@ -12,7 +12,7 @@
  *
  * Last Editor: $Author: sigurdne $
  * @author Richard Tango-Lowy & Dan Cech
- * @version $Revision: 1.1 $
+ * @version $Revision: 1.2 $
  *
  * @package axmls
  * @tutorial getting_started.pkg
@@ -1309,7 +1309,7 @@
 * @tutorial getting_started.pkg
 *
 * @author Richard Tango-Lowy & Dan Cech
-* @version $Revision: 1.1 $
+* @version $Revision: 1.2 $
 *
 * @package axmls
 */

Index: adodb.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/adodb.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- adodb.inc.php       18 Mar 2006 16:53:16 -0000      1.4
+++ adodb.inc.php       22 Jun 2006 09:06:36 -0000      1.5
@@ -14,7 +14,7 @@
 /**
        \mainpage       
        
-        @version V4.80 8 Mar 2006  (c) 2000-2006 John Lim 
(jlim#natsoft.com.my). All rights reserved.
+        @version 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. You can 
choose which license
        you prefer.
@@ -171,7 +171,7 @@
                /**
                 * ADODB version as a string.
                 */
-               $ADODB_vers = 'V4.80 8 Mar 2006  (c) 2000-2006 John Lim 
(jlim#natsoft.com.my). All rights reserved. Released BSD & LGPL.';
+               $ADODB_vers = 'V4.90 8 June 2006  (c) 2000-2006 John Lim 
(jlim#natsoft.com.my). All rights reserved. Released BSD & LGPL.';
        
                /**
                 * Determines whether recordset->RecordCount() is used. 
@@ -314,6 +314,7 @@
        var $_evalAll = false;
        var $_affected = false;
        var $_logsql = false;
+       var $_transmode = ''; // transaction mode
        
        /**
         * Constructor
@@ -553,6 +554,7 @@
 
        function q(&$s)
        {
+               #if (!empty($this->qNull)) if ($s == 'null') return $s;
                $s = $this->qstr($s,false);
        }
        
@@ -822,7 +824,10 @@
                                                        $sql .= 
str_replace(',','.',$v); // locales fix so 1.1 does not get converted to 1,1
                                                else if ($typ == 'boolean')
                                                        $sql .= $v ? 
$this->true : $this->false;
-                                               else if ($v === null)
+                                               else if ($typ == 'object') {
+                                                       if (method_exists($v, 
'__toString')) $sql .= $this->qstr($v->__toString());
+                                                       else $sql .= 
$this->qstr((string) $v);
+                                               } else if ($v === null)
                                                        $sql .= 'NULL';
                                                else
                                                        $sql .= $v;
@@ -864,7 +869,7 @@
        {
                if ($this->debug) {
                        global $ADODB_INCLUDED_LIB;
-                       if (empty($ADODB_INCLUDED_LIB)) 
include_once(ADODB_DIR.'/adodb-lib.inc.php');
+                       if (empty($ADODB_INCLUDED_LIB)) 
include(ADODB_DIR.'/adodb-lib.inc.php');
                        $this->_queryID = _adodb_debug_execute($this, 
$sql,$inputarr);
                } else {
                        $this->_queryID = @$this->_query($sql,$inputarr);
@@ -1461,7 +1466,7 @@
        function Replace($table, $fieldArray, $keyCol, $autoQuote=false, 
$has_autoinc=false)
        {
                global $ADODB_INCLUDED_LIB;
-               if (empty($ADODB_INCLUDED_LIB)) 
include_once(ADODB_DIR.'/adodb-lib.inc.php');
+               if (empty($ADODB_INCLUDED_LIB)) 
include(ADODB_DIR.'/adodb-lib.inc.php');
                
                return _adodb_replace($this, $table, $fieldArray, $keyCol, 
$autoQuote, $has_autoinc);
        }
@@ -1528,7 +1533,7 @@
       } 
       
       global $ADODB_INCLUDED_CSV;
-      if (empty($ADODB_INCLUDED_CSV)) 
include_once(ADODB_DIR.'/adodb-csvlib.inc.php');
+      if (empty($ADODB_INCLUDED_CSV)) 
include(ADODB_DIR.'/adodb-csvlib.inc.php');
       
       $f = $this->_gencachename($sql.serialize($inputarr),false);
       adodb_write_file($f,''); // is adodb_write_file needed?
@@ -1580,7 +1585,7 @@
                } 
                
                global $ADODB_INCLUDED_CSV;
-               if (empty($ADODB_INCLUDED_CSV)) 
include_once(ADODB_DIR.'/adodb-csvlib.inc.php');
+               if (empty($ADODB_INCLUDED_CSV)) 
include(ADODB_DIR.'/adodb-csvlib.inc.php');
                
                $f = $this->_gencachename($sql.serialize($inputarr),false);
                adodb_write_file($f,''); // is adodb_write_file needed?
@@ -1655,7 +1660,7 @@
                        $sqlparam = $sql;
                        
                global $ADODB_INCLUDED_CSV;
-               if (empty($ADODB_INCLUDED_CSV)) 
include_once(ADODB_DIR.'/adodb-csvlib.inc.php');
+               if (empty($ADODB_INCLUDED_CSV)) 
include(ADODB_DIR.'/adodb-csvlib.inc.php');
                
                $md5file = $this->_gencachename($sql.serialize($inputarr),true);
                $err = '';
@@ -1731,15 +1736,16 @@
         */
        function& AutoExecute($table, $fields_values, $mode = 'INSERT', $where 
= FALSE, $forceUpdate=true, $magicq=false) 
        {
+               $false = false;
                $sql = 'SELECT * FROM '.$table;  
                if ($where!==FALSE) $sql .= ' WHERE '.$where;
                else if ($mode == 'UPDATE' || $mode == 2 /* DB_AUTOQUERY_UPDATE 
*/) {
                        ADOConnection::outp('AutoExecute: Illegal mode=UPDATE 
with empty WHERE clause');
-                       return false;
+                       return $false;
                }
 
                $rs =& $this->SelectLimit($sql,1);
-               if (!$rs) return false; // table does not exist
+               if (!$rs) return $false; // table does not exist
                $rs->tableName = $table;
                
                switch((string) $mode) {
@@ -1753,7 +1759,7 @@
                        break;
                default:
                        ADOConnection::outp("AutoExecute: Unknown mode=$mode");
-                       return false;
+                       return $false;
                }
                $ret = false;
                if ($sql) $ret = $this->Execute($sql);
@@ -1786,7 +1792,7 @@
                }
                //********************************************************//
 
-               if (empty($ADODB_INCLUDED_LIB)) 
include_once(ADODB_DIR.'/adodb-lib.inc.php');
+               if (empty($ADODB_INCLUDED_LIB)) 
include(ADODB_DIR.'/adodb-lib.inc.php');
                return 
_adodb_getupdatesql($this,$rs,$arrFields,$forceUpdate,$magicq,$force);
        }
 
@@ -1806,7 +1812,7 @@
                        $force = $ADODB_FORCE_TYPE;
                        
                }
-               if (empty($ADODB_INCLUDED_LIB)) 
include_once(ADODB_DIR.'/adodb-lib.inc.php');
+               if (empty($ADODB_INCLUDED_LIB)) 
include(ADODB_DIR.'/adodb-lib.inc.php');
                return _adodb_getinsertsql($this,$rs,$arrFields,$magicq,$force);
        }
        
@@ -1973,7 +1979,7 @@
                
                
                if (!isset($_ADODB_ACTIVE_DBS)) {
-                       include_once(ADODB_DIR.'/adodb-active-record.inc.php');
+                       include(ADODB_DIR.'/adodb-active-record.inc.php');
                }       
                if (!class_exists($class)) {
                        ADOConnection::outp("Unknown class $class in 
GetActiveRcordsClass()");
@@ -2016,6 +2022,57 @@
         */
        function BeginTrans() {return false;}
        
+       /* set transaction mode */
+       function SetTransactionMode( $transaction_mode ) 
+       {
+               $transaction_mode = $this->MetaTransaction($transaction_mode, 
$this->dataProvider);
+               $this->_transmode  = $transaction_mode;
+       }
+/*
+http://msdn2.microsoft.com/en-US/ms173763.aspx
+http://dev.mysql.com/doc/refman/5.0/en/innodb-transaction-isolation.html
+http://www.postgresql.org/docs/8.1/interactive/sql-set-transaction.html
+http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_10005.htm
+*/
+       function MetaTransaction($mode,$db)
+       {
+               $mode = strtoupper($mode);
+               $mode = str_replace('ISOLATION LEVEL ','',$mode);
+               
+               switch($mode) {
+
+               case 'READ UNCOMMITTED':
+                       switch($db) { 
+                       case 'oci8':
+                       case 'oracle':
+                               return 'ISOLATION LEVEL READ COMMITTED';
+                       default:
+                               return 'ISOLATION LEVEL READ UNCOMMITTED';
+                       }
+                       break;
+                                       
+               case 'READ COMMITTED':
+                               return 'ISOLATION LEVEL READ COMMITTED';
+                       break;
+                       
+               case 'REPEATABLE READ':
+                       switch($db) {
+                       case 'oci8':
+                       case 'oracle':
+                               return 'ISOLATION LEVEL SERIALIZABLE';
+                       default:
+                               return 'ISOLATION LEVEL REPEATABLE READ';
+                       }
+                       break;
+                       
+               case 'SERIALIZABLE':
+                               return 'ISOLATION LEVEL SERIALIZABLE';
+                       break;
+                       
+               default:
+                       return $mode;
+               }
+       }
        
        /**
         * If database does not support transactions, always return true as 
data always commited
@@ -2207,7 +2264,7 @@
         *
         * @return  array of column names for current table.
         */ 
-       function &MetaColumnNames($table, $numIndexes=false) 
+       function &MetaColumnNames($table, $numIndexes=false,$useattnum=false /* 
only for postgres */) 
        {
                $objarr =& $this->MetaColumns($table);
                if (!is_array($objarr)) {
@@ -2217,6 +2274,11 @@
                $arr = array();
                if ($numIndexes) {
                        $i = 0;
+                       if ($useattnum) {
+                               foreach($objarr as $v) 
+                                       $arr[$v->attnum] = $v->name;
+                               
+                       } else
                        foreach($objarr as $v) $arr[$i++] = $v->name;
                } else
                        foreach($objarr as $v) $arr[strtoupper($v->name)] = 
$v->name;
@@ -2261,6 +2323,22 @@
                return adodb_date($this->fmtDate,$d);
        }
        
+       function BindDate($d)
+       {
+               $d = $this->DBDate($d);
+               if (strncmp($d,"'",1)) return $d;
+               
+               return substr($d,1,strlen($d)-2);
+       }
+       
+       function BindTimeStamp($d)
+       {
+               $d = $this->DBTimeStamp($d);
+               if (strncmp($d,"'",1)) return $d;
+               
+               return substr($d,1,strlen($d)-2);
+       }
+       
        
        /**
         * Converts a timestamp "ts" to a string that the database can 
understand.
@@ -2463,7 +2541,7 @@
        function &PageExecute($sql, $nrows, $page, $inputarr=false, 
$secs2cache=0) 
        {
                global $ADODB_INCLUDED_LIB;
-               if (empty($ADODB_INCLUDED_LIB)) 
include_once(ADODB_DIR.'/adodb-lib.inc.php');
+               if (empty($ADODB_INCLUDED_LIB)) 
include(ADODB_DIR.'/adodb-lib.inc.php');
                if ($this->pageExecuteCountRows) $rs =& 
_adodb_pageexecute_all_rows($this, $sql, $nrows, $page, $inputarr, $secs2cache);
                else $rs =& _adodb_pageexecute_no_last_page($this, $sql, 
$nrows, $page, $inputarr, $secs2cache);
                return $rs;
@@ -2535,7 +2613,7 @@
        
//==============================================================================================
        
        // DATE AND TIME FUNCTIONS
        
//==============================================================================================
        
-       include_once(ADODB_DIR.'/adodb-time.inc.php');
+       if (!defined('ADODB_DATE_VERSION')) 
include(ADODB_DIR.'/adodb-time.inc.php');
        
        
//==============================================================================================
        
        // CLASS ADORecordSet
@@ -2646,7 +2724,7 @@
                        $size=0, $selectAttr='',$compareFields0=true)
        {
                global $ADODB_INCLUDED_LIB;
-               if (empty($ADODB_INCLUDED_LIB)) 
include_once(ADODB_DIR.'/adodb-lib.inc.php');
+               if (empty($ADODB_INCLUDED_LIB)) 
include(ADODB_DIR.'/adodb-lib.inc.php');
                return _adodb_getmenu($this, 
$name,$defstr,$blank1stItem,$multiple,
                        $size, $selectAttr,$compareFields0);
        }
@@ -2673,7 +2751,7 @@
                        $size=0, $selectAttr='')
        {
                global $ADODB_INCLUDED_LIB;
-               if (empty($ADODB_INCLUDED_LIB)) 
include_once(ADODB_DIR.'/adodb-lib.inc.php');
+               if (empty($ADODB_INCLUDED_LIB)) 
include(ADODB_DIR.'/adodb-lib.inc.php');
                return _adodb_getmenu_gp($this, 
$name,$defstr,$blank1stItem,$multiple,
                        $size, $selectAttr,false);
        }
@@ -3360,6 +3438,7 @@
                'BPCHAR' => 'C',
                'CHARACTER' => 'C',
                'INTERVAL' => 'C',  # Postgres
+               'MACADDR' => 'C', # postgres
                ##
                'LONGCHAR' => 'X',
                'TEXT' => 'X',
@@ -3386,6 +3465,7 @@
                'DATETIME' => 'T',
                'TIMESTAMPTZ' => 'T',
                'T' => 'T',
+               'TIMESTAMP WITHOUT TIME ZONE' => 'T', // postgresql
                ##
                'BOOL' => 'L',
                'BOOLEAN' => 'L', 
@@ -3952,7 +4032,7 @@
                $path = ADODB_DIR."/datadict/datadict-$drivername.inc.php";
 
                if (!file_exists($path)) {
-                       ADOConnection::outp("Database driver '$path' not 
available");
+                       ADOConnection::outp("Dictionary driver '$path' not 
available");
                        return $false;
                }
                include_once($path);
@@ -3998,7 +4078,7 @@
        function adodb_backtrace($printOrArr=true,$levels=9999)
        {
                global $ADODB_INCLUDED_LIB;
-               if (empty($ADODB_INCLUDED_LIB)) 
include_once(ADODB_DIR.'/adodb-lib.inc.php');
+               if (empty($ADODB_INCLUDED_LIB)) 
include(ADODB_DIR.'/adodb-lib.inc.php');
                return _adodb_backtrace($printOrArr,$levels);
        }
 

Index: pivottable.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/pivottable.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- pivottable.inc.php  18 Mar 2006 16:53:16 -0000      1.4
+++ pivottable.inc.php  22 Jun 2006 09:06:36 -0000      1.5
@@ -1,15 +1,12 @@
 <?php
 /** 
- * @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version 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. 
  *
  * Set tabs to 4 for best viewing.
  * 
- * Latest version is available at http://php.weblogs.com
- *
- * Requires PHP4.01pl2 or later because it uses include_once
 */
 
 /*
@@ -38,7 +35,7 @@
        else $hidecnt = false;
        
        $iif = strpos($db->databaseType,'access') !== false; 
-               // note - vfp still doesn' work even with IIF enabled || 
$db->databaseType == 'vfp';
+               // note - vfp 6 still doesn' work even with IIF enabled || 
$db->databaseType == 'vfp';
        
        //$hidecnt = false;
        
@@ -95,7 +92,12 @@
        else
                $sel = substr($sel,0,strlen($sel)-2);
        
+       
+       // Strip aliases
+       $rowfields = preg_replace('/ AS (\w+)/i', '', $rowfields);
+       
        $sql = "SELECT $sel \nFROM $tables $where \nGROUP BY $rowfields";
+       
        return $sql;
  }
 

Index: rsfilter.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/rsfilter.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- rsfilter.inc.php    18 Mar 2006 16:53:16 -0000      1.4
+++ rsfilter.inc.php    22 Jun 2006 09:06:36 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /** 
- * @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version 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. 

Index: server.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/server.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- server.php  18 Mar 2006 16:53:16 -0000      1.4
+++ server.php  22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /** 
- * @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version 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. 

Index: toexport.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/toexport.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- toexport.inc.php    18 Mar 2006 16:53:16 -0000      1.4
+++ toexport.inc.php    22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /** 
- * @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version 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. 

Index: tohtml.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tohtml.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tohtml.inc.php      18 Mar 2006 16:53:16 -0000      1.4
+++ tohtml.inc.php      22 Jun 2006 09:06:36 -0000      1.5
@@ -1,6 +1,6 @@
 <?php 
 /*
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.
@@ -95,7 +95,7 @@
                        break;
                        
                        case 'N':
-                               if (abs($v) - round($v,0) < 0.00000001)
+                               if (abs(abs($v) - round($v,0)) < 0.00000001)
                                        $v = round($v);
                                else
                                        $v = round($v,$ADODB_ROUND);

Index: datadict/datadict-access.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-access.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- datadict/datadict-access.inc.php    18 Mar 2006 16:53:16 -0000      1.4
+++ datadict/datadict-access.inc.php    22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: datadict/datadict-db2.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-db2.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- datadict/datadict-db2.inc.php       18 Mar 2006 16:53:16 -0000      1.4
+++ datadict/datadict-db2.inc.php       22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: datadict/datadict-firebird.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-firebird.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- datadict/datadict-firebird.inc.php  18 Mar 2006 16:53:16 -0000      1.4
+++ datadict/datadict-firebird.inc.php  22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: datadict/datadict-generic.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-generic.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- datadict/datadict-generic.inc.php   18 Mar 2006 16:53:16 -0000      1.4
+++ datadict/datadict-generic.inc.php   22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: datadict/datadict-ibase.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-ibase.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- datadict/datadict-ibase.inc.php     18 Mar 2006 16:53:16 -0000      1.4
+++ datadict/datadict-ibase.inc.php     22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: datadict/datadict-informix.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-informix.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- datadict/datadict-informix.inc.php  18 Mar 2006 16:53:16 -0000      1.4
+++ datadict/datadict-informix.inc.php  22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: datadict/datadict-mssql.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-mssql.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- datadict/datadict-mssql.inc.php     18 Mar 2006 16:53:16 -0000      1.4
+++ datadict/datadict-mssql.inc.php     22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: datadict/datadict-mysql.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-mysql.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- datadict/datadict-mysql.inc.php     18 Mar 2006 16:53:16 -0000      1.4
+++ datadict/datadict-mysql.inc.php     22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: datadict/datadict-oci8.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-oci8.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- datadict/datadict-oci8.inc.php      18 Mar 2006 16:53:16 -0000      1.4
+++ datadict/datadict-oci8.inc.php      22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: datadict/datadict-postgres.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-postgres.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- datadict/datadict-postgres.inc.php  18 Mar 2006 16:53:16 -0000      1.4
+++ datadict/datadict-postgres.inc.php  22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: datadict/datadict-sapdb.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-sapdb.inc.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- datadict/datadict-sapdb.inc.php     21 Feb 2006 13:47:42 -0000      1.3
+++ datadict/datadict-sapdb.inc.php     22 Jun 2006 09:06:36 -0000      1.4
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.50 6 July 2004  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  V4.50 6 July 2004  (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.

Index: datadict/datadict-sybase.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/datadict/datadict-sybase.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- datadict/datadict-sybase.inc.php    18 Mar 2006 16:53:16 -0000      1.4
+++ datadict/datadict-sybase.inc.php    22 Jun 2006 09:06:36 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /**
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: docs/docs-active-record.htm
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/docs/docs-active-record.htm,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- docs/docs-active-record.htm 18 Mar 2006 16:53:16 -0000      1.1
+++ docs/docs-active-record.htm 22 Jun 2006 09:06:36 -0000      1.2
@@ -159,11 +159,24 @@
 <a name=additional>
 <h2>ADOdb Specific Functionality</h2>
 <h3><li>Setting the Table Name</h3>
-<p>The default behaviour on creating an ADOdb_Active_Record is to "pluralize" 
the class name and use that as the table name. Often, this is not the case. For 
example, the Person class could be reading from the "People" table. We provide 
a constructor parameter to override the default table naming behaviour.
+<p>The default behaviour on creating an ADOdb_Active_Record is to "pluralize" 
the class name and
+ use that as the table name. Often, this is not the case. For example, the 
Person class could be reading 
+ from the "People" table. 
+<p>We provide two ways to define your own table:
+<p>1. Use a constructor parameter to override the default table naming 
behaviour.
 <pre>
        class Person extends ADOdb_Active_Record{}
        $person = new Person('People');
 </pre>
+<p>2. Define it in a class declaration:
+<pre>
+       class Person extends ADOdb_Active_Record
+       {
+       var $_table = 'People';
+       }
+       $person = new Person();
+</pre>
+
 <h3><li>$ADODB_ASSOC_CASE</h3>
 <p>This allows you to control the case of field names and properties. For 
example, all field names in Oracle are upper-case by default. So you 
 can force field names to be lowercase using $ADODB_ASSOC_CASE. Legal values 
are as follows:
@@ -184,7 +197,13 @@
 
 <p>Also see <a 
href=http://phplens.com/adodb/reference.constants.adodb_assoc_case.html>$ADODB_ASSOC_CASE</a>.
 
-<h3><li>ADOdb_Active_Record::Replace</h3>
+<h3><li>ADOdb_Active_Record::Save()</h3>
+<p>
+Saves a record by executing an INSERT or UPDATE SQL statement as appropriate. 
+<p>Returns false on  unsuccessful INSERT, true if successsful INSERT.
+<p>Returns 0 on failed UPDATE, and 1 on UPDATE if data has changed, and -1 if 
no data was changed, so no UPDATE statement was executed.
+
+<h3><li>ADOdb_Active_Record::Replace()</h3>
 <p>
 ADOdb supports replace functionality, whereby the record is inserted if it 
does not exists, or updated otherwise.
 <pre>
@@ -195,7 +214,7 @@
 </pre>
 
 
-<h3><li>ADOdb_Active_Record::Load()</h3>
+<h3><li>ADOdb_Active_Record::Load($where)</h3>
 <p>Sometimes, we want to load a single record into an Active Record. We can do 
so using:
 <pre>
 $person->load("id=3");
@@ -206,6 +225,17 @@
 </pre>
 <p>Returns false if an error occurs.
 
+<h3><li>ADOdb_Active_Record::Find($whereOrderBy, $bindarr=false, 
$pkeyArr=false)</h3>
+<p>We want to retrieve an array of active records based on some search 
criteria. For example:
+<pre>
+class Person extends ADOdb_Active_Record {
+var $_table = 'people';
+}
+
+$person = new Person();
+peopleArray =& $person->Find("name like ? order by age", array('Sm%'));
+</pre>
+
 <h3><li>Error Handling and Debugging</h3>
 <p>
 In PHP5, if adodb-exceptions.inc.php is included, then errors are thrown. 
Otherwise errors are handled by returning a value. False by default means an 
error has occurred. You can get the last error message using the ErrorMsg() 
function. 
@@ -260,6 +290,8 @@
         // or use method
        $rec->SetPrimaryKeys($pkeys);
 </pre>
+
+
 <h3><li>Retrieval of Auto-incrementing ID</h3>
 When creating a new record, the retrieval of the last auto-incrementing ID is 
not reliable for databases that do not support the Insert_ID() function call 
(check $connection->hasInsertID). In this case we perform a <b>SELECT 
MAX($primarykey) FROM $table</b>, which will not work reliably in a multi-user 
environment. You can override the ADOdb_Active_Record::LastInsertID() function 
in this case.
 
@@ -288,6 +320,11 @@
 $rec = new ADOdb_Active_Record("table1",array("id"),$db2);
 </pre>
 
+<h3><li>$ADODB_ACTIVE_CACHESECS</h3>
+<p>You can cache the table metadata (field names, types, and other info such 
primary keys) in $ADODB_CACHE_DIR (which defaults to /tmp) by setting
+the global variable $ADODB_ACTIVE_CACHESECS to a value greater than 0. This 
will be the number of seconds to cache.
+ You should set this to a value of 30 seconds or greater for optimal 
performance.
+
 <h3><li>Active Record Considered Bad?</h3>
 <p>Although the Active Record concept is useful, you have to be aware of some 
pitfalls when using Active Record. The level of granularity of Active Record is 
individual records. It encourages code like the following, used to increase the 
price of all furniture products by 10%:
 <pre>
@@ -303,6 +340,18 @@
 </pre>
 <p>Another issue is performance. For performance sensitive code, using direct 
SQL will always be faster than using Active Records due to overhead and the 
fact that all fields in a row are retrieved (rather than only the subset you 
need) whenever an Active Record is loaded.
 
+<h3><li>Transactions</h3>
+<p>
+The default transaction mode in ADOdb is autocommit. So that is the default 
with active record too. 
+The general rules for managing transactions still apply. Active Record to the 
database is a set of insert/update/delete statements, and the db has no 
knowledge of active records.
+<p>
+Smart transactions, that does an auto-rollback if an error occurs, is still 
the best method to multiple activities (inserts/updates/deletes) that need to 
be treated as a single transaction:
+<pre>
+$conn->StartTrans();
+$parent->save();
+$child->save();
+$conn->CompleteTrans();
+</pre>
 
 <h2>ADOConnection Supplement</h2>
 
@@ -448,6 +497,14 @@
  <p>PHP5 specific: Change PHP5 implementation of Active Record to use __get() 
and __set() for better performance.
 
 <h3> Change Log</h3>
+<p>0.04 5 June 2006 <br>
+<p>Added support for declaring table name in $_table in class declaration. Thx 
Bill Dueber for idea.
+<p>Added find($where,$bindarr=false) method to retrieve an array of active 
record objects.
+<p>0.03 <br>
+- Now we only update fields that have changed, using $this->_original.<br>
+- We do not include auto_increment fields in replace(). Thx Travis Cline<br>
+- Added ADODB_ACTIVE_CACHESECS.<br>
+
 <p>0.02 <br>
 - Much better error handling. ErrorMsg() implemented. Throw implemented if 
adodb-exceptions.inc.php detected.<br>
 - You can now define the primary keys of the view or table you are accessing 
manually.<br>

Index: docs/docs-adodb.htm
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/docs/docs-adodb.htm,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- docs/docs-adodb.htm 18 Mar 2006 16:53:16 -0000      1.4
+++ docs/docs-adodb.htm 22 Jun 2006 09:06:36 -0000      1.5
@@ -15,7 +15,7 @@
 <body bgcolor="#ffffff" text="black">
 
 <h2>ADOdb Library for PHP</h2>
-<p>V4.80 8 Mar 2006 (c) 2000-2006 John Lim (jlim#natsoft.com)</p>
+<p>V4.90 8 June 2006 (c) 2000-2006 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>
   
@@ -81,6 +81,7 @@
   <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="#dbdate">DBDate</a>  <a href="#dbtimestamp">DBTimeStamp</a>
+  <a href="#binddate">BindDate</a>  <a href="#bindtimestamp">BindTimeStamp</a>
   <br>
   Blobs: <a href="#updateblob">UpdateBlob</a> <a 
href="#updateclob">UpdateClob</a> 
   <a href="#updateblobfile">UpdateBlobFile</a> <a 
href="#blobencode">BlobEncode</a> 
@@ -90,10 +91,11 @@
   Transactions: <a href="#starttrans">StartTrans</a> <a 
href="#completetrans">CompleteTrans</a> 
   <a href="#failtrans">FailTrans</a> <a 
href="#hasfailedtrans">HasFailedTrans</a> 
   <a href="#begintrans">BeginTrans</a> <a href="#committrans">CommitTrans</a> 
-  <a href="#rollbacktrans">RollbackTrans</a> <br>
+  <a href="#rollbacktrans">RollbackTrans</a> <a 
href=#SetTransactionMode>SetTransactionMode</a><br>
   Fetching Data: </font> <font size="2"><a 
href="#setfetchmode">SetFetchMode</a><br>
   Strings: <a href="#concat">concat</a> <a href="#length">length</a>  <a 
href="#qstr">qstr</a> <a href="#quote">quote</a> <a 
href="#substr">substr</a><br>
   Dates: <a href="#dbdate">DBDate</a> <a href="#dbtimestamp">DBTimeStamp</a> 
<a href="#unixdate">UnixDate</a> 
+  <a href="#binddate">BindDate</a>  <a href="#bindtimestamp">BindTimeStamp</a>
   <a href="#unixtimestamp">UnixTimeStamp</a> <a 
href="#OffsetDate">OffsetDate</a> 
   <a href="#SQLDate">SQLDate</a> <br>
   Row Management: <a href="#affected_rows">Affected_Rows</a> <a 
href="#inserted_id">Insert_ID</a>  <a href="#rowlock">RowLock</a>
@@ -126,7 +128,7 @@
   Menu generation:<a href="#getmenu">GetMenu</a> <a 
href="#getmenu2">GetMenu2</a><br>
   Dates:<a href="#userdate">UserDate</a> <a 
href="#usertimestamp">UserTimeStamp</a> 
   <a href="#unixdate">UnixDate</a> <a href="#unixtimestamp">UnixTimeStamp<br>
-  </a>Recordset Info:<a href="#recordcount">RecordCount</a> <a 
href="#po_recordcount">PO_RecordSet</a> 
+  </a>Recordset Info:<a href="#recordcount">RecordCount</a> <a 
href="#po_recordcount">PO_RecordCount</a> 
   <a href="#nextrecordset">NextRecordSet</a><br>
   Field Info:<a href="#fieldcount">FieldCount</a> <a 
href="#fetchfield">FetchField</a> 
   <a href="#metatype">MetaType</a><br>
@@ -1646,7 +1648,7 @@
 <p><font>We now perform a rollback on persistent connection for selected 
databases since 
        2.21, as advised in the PHP manual. See change log or source code for 
which 
        databases are affected. 
-</font></p><p><font>Returns true/false depending on connection. Since 4.23, 
null is returned if the extension is not loaded.
+</font></p><p><font>Returns true/false depending on connection. Since 4.23, 0 
is returned if the extension is not loaded.
 See Connect( ) above for more info.</font></p>
 <p><font>Since ADOdb 2.21, we also support autoRollback. If you set:</font></p>
  
@@ -2026,8 +2028,36 @@
 <p><font>End a transaction, rollback all changes. Returns true if successful. 
If the 
   database does not support transactions, will return false as data is never 
rollbacked. 
 </font></p>
-<font> 
-</font><p><font><b>GetAssoc<a 
name="getassoc1"></a>($sql,$inputarr=false,$force_array=false,$first2cols=false)</b></font></p>
+ 
+<p><font><b>SetTransactionMode<a name="SetTransactionMode"></a>($mode 
)</b></font></p>
+<p>SetTransactionMode allows you to pass in the transaction mode to use for 
all subsequent transactions. 
+Note: if you have persistent connections and using mssql or mysql, you might 
have to explicitly reset your transaction mode at the beginning of each page 
request. 
+This is only supported in postgresql, mssql, mysql with InnoDB and oci8 
currently. For example:
+<pre>
+$db->SetTransactionMode("SERIALIZABLE");
+$db->BeginTrans();
+$db->Execute(...); $db->Execute(...);
+$db->CommiTrans();
+
+$db->SetTransactionMode(""); // restore to default
+$db->StartTrans();
+$db->Execute(...); $db->Execute(...);
+$db->CompleteTrans();
+</pre>
+
+<p>Supported values to pass in:
+<ul>
+<li>READ UNCOMMITTED (allows dirty reads, but fastest)
+<li>READ COMMITTED (default postgres, mssql and oci8)
+<li>REPEATABLE READ (default mysql)
+<li>SERIALIZABLE (slowest and most restrictive)
+</ul>
+<p>You can also pass in database specific values such as 'SNAPSHOT' for mssql 
or 'READ ONLY' for oci8/postgres.
+<p>See transaction levels for <a 
href=http://www.postgresql.org/docs/8.1/interactive/sql-set-transaction.html>PostgreSQL</a>,
+<a 
href=http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_10005.htm>Oracle</a>,
+<a href=http://dev.mysql.com/doc/refman/5.0/en/set-transaction.html>MySQL</a>, 
and
+<a href=http://msdn2.microsoft.com/en-US/ms173763.aspx>MS SQL Server</a>.
+<p><font><b>GetAssoc<a 
name="getassoc1"></a>($sql,$inputarr=false,$force_array=false,$first2cols=false)</b></font></p>
 <p><font>Returns an associative array for the given query $sql with optional 
bind parameters 
   in $inputarr. If the number of columns returned is greater to two, a 
2-dimensional 
   array is returned, with the first column of the recordset becomes the keys 
@@ -2356,12 +2386,38 @@
   Y-m-d. Uses the fmtDate field, which holds the format to use. If null or 
false 
   or '' is passed in, it will be converted to an SQL null.</font></p>
 <p><font>Returns the date as a quoted string.</font></p>
+<pre>
+       $sql = "select * from atable where created > 
".$db->DBDate("$year-$month-$day");
+       $db->Execute($sql);
+</pre>
+<p><font><b>BindDate<a name="binddate"></a>($date)</b></font></p>
+<p><font>Format the $<b>date</b> in the bind format the database accepts. 
Normally
+ this means that the date string is not quoted, unlike DBDate, which quotes 
the string.
+<pre>
+       $sql = "select * from atable where created > ".$db->Param('0');
+       // or
+       $sql = "select * from atable where created > ?";
+       $db->Execute($sql,array($db->BindDate("$year-$month-$day"));
+</pre>
 <p><font><b>DBTimeStamp<a name="dbtimestamp"></a>($ts)</b></font></p>
 <p><font>Format the timestamp $<b>ts</b> in the format the database accepts; 
this can 
   be a Unix integer timestamp or an ISO format Y-m-d H:i:s. Uses the 
fmtTimeStamp 
   field, which holds the format to use. If null or false or '' is passed in, 
it 
   will be converted to an SQL null.</font></p>
 <p><font>Returns the timestamp as a quoted string.</font></p>
+<pre>
+       $sql = "select * from atable where created > 
".$db->DBTimeStamp("$year-$month-$day $hr:$min:$secs");
+       $db->Execute($sql);
+</pre>
+<p><font><b>BindTimeStamp<a name="bindtimestamp"></a>($ts)</b></font></p>
+<p><font>Format the timestamp $<b>ts</b> in the bind format the database 
accepts. Normally
+ this means that the timestamp string is not quoted, unlike DBTimeStamp, which 
quotes the string.
+<pre>
+       $sql = "select * from atable where created > ".$db->Param('0');
+       // or
+       $sql = "select * from atable where created > ?";
+       $db->Execute($sql,array($db->BindTimeStamp("$year-$month-$day 
$hr:$min:$secs"));
+</pre>
 <p><font><b>qstr<a 
name="qstr"></a>($s,[$magic_quotes_enabled</b>=false]<b>)</b></font></p>
 <p><font>Quotes a string to be sent to the database. The 
$<b>magic_quotes_enabled</b> 
   parameter may look funny, but the idea is if you are quoting a string 
extracted 
@@ -2682,7 +2738,7 @@
 <p><font><b>FetchNextObject<a 
name="fetchnextobject"></a>($toupper=true)</b></font></p>
 <p><font>Gets the current row as an object and moves to the next
     row automatically. Returns false if at end-of-file. If you set $toupper to
-  true, then the object fields are set to upper-case.</font></p>
+  true, then the object fields are set to upper-case. Note that for some 
drivers such as mssql, you need to SetFetchMode(ADODB_FETCH_ASSOC) or 
SetFetchMode(ADODB_FETCH_BOTH).</font></p>
 <pre><font>$rs = $db-&gt;Execute('select firstname,lastname from 
table');<br>if ($rs) {<br>    while ($o = $rs-&gt;FetchNextObject()) {<br>      
      print "$o-&gt;FIRSTNAME, $o-&gt;LASTNAME&lt;BR&gt;";<br>        
}<br>}<br></font></pre>
 <p><font>There is some trade-off in speed in using FetchNextObject().
 If performance is important, you should access rows with the 
<code>fields[]</code> array. <b>FetchObj<a name="fetchobj" 
id="fetchobj"></a>()</b> </font></p>
@@ -2844,11 +2900,35 @@
   PHP</a>. </font></p>
 
 <h2><font>Change Log<a name="Changes"></a><a name="changes"></a><a 
name="changelog"></a></font></h2>
-<P>
+<p><a name="4.90"></a><b>4.90 8 June 2006</b>
+<p>Changed adodb_countrec() in adodb-lib.inc.php to allow LIMIT to be used as 
a speedup to reduce no of records counted.
+<p>Added support for transaction modes for postgres and oci8 with 
SetTransactionMode(). 
+These transaction modes affect all subsequent transactions of that connection.
+<p>Thanks to Halmai Csongor for suggestion.
+<p>Removed $off = $fieldOffset - 1 line in db2 driver, FetchField(). Tx Larry 
Menard.
+<p>Added support for PHP5 objects as Execute() bind parameters using 
__toString (eg. Simple-XML). Thx Carl-Christian Salvesen.
+<p>Rounding in tohtml.inc.php did not work properly. Fixed.
+<p>MetaIndexes in postgres fails when fields are deleted then added in again 
because the attnum has gaps in it. 
+See 
http://sourceforge.net/tracker/index.php?func=detail&aid=1451245&group_id=42718&atid=433976.
 Fixed.
+<p>MetaForeignkeys in mysql and mysqli did not work when 
fetchMode==ADODB_FETCH_ASSOC used. Fixed.
+<p>Reference error in AutoExecute() fixed.
+<p>Added macaddr postgres type to MetaType. Maps to 'C'.
+<p>Added to _connect() in adodb-ado5.inc.php support for $database and 
$dataProvider parameters.  Thx Larry Menard.
+<p>Added support for sequences in adodb-ado_mssql.inc.php. Thx Larry Menard.
+<p>Added ADODB_SESSION_READONLY.
+<p>Added session expiryref support to crc32 mode, and in LOB code.
+<p>Clear _errorMsg in postgres7 driver, so that ErrorMsg() displays properly 
when no error occurs.
+<p>Added BindDate and BindTimeStamp
+<p><a name="4.81"></a><b>4.81 3 May 2006</b>
+<p>Fixed variable ref errors in adodb-ado5.inc.php in _query().
+<p>Mysqli setcharset fix using method_exists().
+<p>The adodb-perf.inc.php CreateLogTable() code now works for user-defined 
table names.
+<p>Error in ibase_blob_open() fixed. See 
http://phplens.com/lens/lensforum/msgs.php?id=14997
 <p><a name="4.80"></a><b>4.80 8 Mar 2006</b>
 <p>Added activerecord support.
 <p>Added mysql $conn->compat323 = true if you want MySQL 3.23 compat enabled. 
Fixes GetOne() Select-Limit problems.
 <p>Added adodb-xmlschema03.inc.php to support XML Schema version 3 and updated 
adodb-datadict.htm docs.
+<p>Better memory management in Execute. Thx Mike Fedyk.
 <p><a name="4.72"></a><b>4.72 21 Feb 2006</b>
 <p>Added 'new' DSN parameter for NConnect().
 <p>Pager now sanitizes $PHP_SELF to protect against XSS. Thx to James Bercegay 
and others.

Index: docs/docs-datadict.htm
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/docs/docs-datadict.htm,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- docs/docs-datadict.htm      18 Mar 2006 16:53:16 -0000      1.4
+++ docs/docs-datadict.htm      22 Jun 2006 09:06:37 -0000      1.5
@@ -20,7 +20,7 @@
 </head>
 <body style="background-color: rgb(255, 255, 255);">
 <h2>ADOdb Data Dictionary Library for PHP</h2>
-<p>V4.80 8 Mar 2006 (c) 2000-2006 John Lim (<a
+<p>V4.90 8 June 2006 (c) 2000-2006 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

Index: docs/docs-oracle.htm
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/docs/docs-oracle.htm,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- docs/docs-oracle.htm        21 Feb 2006 13:47:42 -0000      1.3
+++ docs/docs-oracle.htm        22 Jun 2006 09:06:37 -0000      1.4
@@ -203,12 +203,12 @@
 <pre>
 $arr = $db->GetOne("select ename from emp where empno=:emp", array('emp' => 
7900));
 </pre>
-<p>For easy pagination support, we provide the SelectLimit function. The 
following will perform a select query, limiting it to 100 rows, starting from 
row 200:
+<p>For easy pagination support, we provide the SelectLimit function. The 
following will perform a select query, limiting it to 100 rows, starting from 
row 201 (row 1 being the 1st row):
 <pre>
 $offset = 200; $limitrows = 100;
-$rs = $db->SelectLimit('select * from table', $offset, $limitrows);
+$rs = $db->SelectLimit('select * from table', $limitrows, $offset);
 </pre>
-<p>The $limitrows parameter is optional.
+<p>The $offset parameter is optional.
 <h4>Array Fetch Mode</h4>
 <p>When data is being returned in an array, you can choose the type of array 
the data is returned in. 
 <ol>

Index: docs/docs-perf.htm
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/docs/docs-perf.htm,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- docs/docs-perf.htm  18 Mar 2006 16:53:16 -0000      1.4
+++ docs/docs-perf.htm  22 Jun 2006 09:06:37 -0000      1.5
@@ -18,7 +18,7 @@
 </head>
 <body>
 <h3>The ADOdb Performance Monitoring Library</h3>
-<p>V4.80 8 Mar 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my)</p>
+<p>V4.90 8 June 2006 (c) 2000-2006 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: docs/docs-session.htm
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/docs/docs-session.htm,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- docs/docs-session.htm       18 Mar 2006 16:53:16 -0000      1.4
+++ docs/docs-session.htm       22 Jun 2006 09:06:37 -0000      1.5
@@ -21,7 +21,7 @@
 <body style="background-color: rgb(255, 255, 255);">
 <h3>ADODB Session Management Manual</h3>
 <p>
-V4.80 8 Mar 2006 (c) 2000-2006 John Lim (jlim#natsoft.com.my)
+V4.90 8 June 2006 (c) 2000-2006 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
@@ -123,11 +123,23 @@
  <pre>  <font
  color="#004040"><br>    include('adodb/adodb.inc.php');<br>    <br><b>    
$ADODB_SESSION_DRIVER='mysql';<br>    $ADODB_SESSION_CONNECT='localhost';<br>   
 $ADODB_SESSION_USER ='scott';<br>    $ADODB_SESSION_PWD ='tiger';<br>    
$ADODB_SESSION_DB ='sessiondb';<br>    <br>    
include('adodb/session/adodb-session-clob.php');</b><br>    
session_start();</font>
  </pre>
+ <p>An alternative way to set persistant or non-persistent connections is to 
call the following function before session_start() is called.
+ <pre>
+       ADODB_Session::persist('P'); # 'C' for non-persistent connections
+ </pre>
  <h4>Installation</h4>
-<p>1. Create this table in your database (syntax might vary depending on your 
db):
+<p>1. Create this table in your database (MySQL syntax):
 <p><pre> <a
- name="sessiontab"></a> <font color="#004040"><br>  create table sessions 
(<br>       SESSKEY char(32) not null,<br>       EXPIRY int(11) unsigned not 
null,<br>       EXPIREREF varchar(64),<br>       DATA text not null,<br>      
primary key (sesskey)<br>  );</font><br> 
+ name="sessiontab"></a> <font color="#004040">
+   create table sessions (
+       SESSKEY char(32) not null,
+       EXPIRY int(11) unsigned not null,
+       EXPIREREF varchar(64),
+          DATA text not null,
+          primary key (sesskey)
+          );</font>
  </pre>
+
  <p>You may want to rename the 'data' field to 'session_data' as
        'data' appears to be a reserved word for one or more of the following:
        <ul>
@@ -169,8 +181,8 @@
 the userid of the session. Later when the session has expired,  just before 
the record is deleted,
 we reload the EXPIREREF field and call the notification function with the 
value of EXPIREREF, which 
 is the userid of the person being logged off.
-<p>ADOdb use a global variable $ADODB_SESSION_EXPIRE_NOTIFY that you must 
predefine before session
-start to store the notification configuratioin. 
+<p>ADOdb uses a global variable $ADODB_SESSION_EXPIRE_NOTIFY that you must 
predefine before session
+start to store the notification configuration. 
 $ADODB_SESSION_EXPIRE_NOTIFY is an array with 2 elements, the
 first being the name of the session variable you would like to store in
 the EXPIREREF field, and the 2nd is the notification function's name. </p>
@@ -179,19 +191,30 @@
 $USERID. The function name is 'NotifyFn'. 
 <p>
 So we define (before session_start() is called): </p>
-<pre> <font color="#004040"><br>        $ADODB_SESSION_EXPIRE_NOTIFY = 
array('USERID','NotifyFn');<br>    </font></pre>
+<pre> <font color="#004040">
+       $ADODB_SESSION_EXPIRE_NOTIFY = array('USERID','NotifyFn');
+</font></pre>
 And when the NotifyFn is called (when the session expires), the
 $USERID is passed in as the first parameter, eg. NotifyFn($userid, $sesskey). 
The
 session key (which is the primary key of the record in the sessions
 table) is the 2nd parameter.
 <p> Here is an example of a Notification function that deletes some
 records in the database and temporary files: </p>
-<pre><font color="#004040"><br>        function NotifyFn($expireref, 
$sesskey)<br>        {<br>        global $ADODB_SESS_CONN; # the session 
connection object<br><br>          $user = 
$ADODB_SESS_CONN-&gt;qstr($expireref);<br>          
$ADODB_SESS_CONN-&gt;Execute("delete from shopping_cart where user=$user");<br> 
         system("rm /work/tmpfiles/$expireref/*");<br>        }</font><br>    
</pre>
+<pre><font color="#004040">
+       function NotifyFn($expireref, $sesskey)
+       {
+               global $ADODB_SESS_CONN; # the session connection object
+               $user = $ADODB_SESS_CONN-&gt;qstr($expireref);
+               
+               $ADODB_SESS_CONN-&gt;Execute("delete from shopping_cart where 
user=$user");          
+               system("rm /work/tmpfiles/$expireref/*");
+       }</font>  
+                         </pre>
 <p> NOTE 1: If you have register_globals disabled in php.ini, then you
 will have to manually set the EXPIREREF. E.g. </p>
 <pre> <font color="#004040">
-    $GLOBALS['USERID'] = GetUserID();
-    $ADODB_SESSION_EXPIRE_NOTIFY = array('USERID','NotifyFn');</font>
+$GLOBALS['USERID'] = GetUserID();
+$ADODB_SESSION_EXPIRE_NOTIFY = array('USERID','NotifyFn');</font>
 </pre>
 <p> NOTE 2: If you want to change the EXPIREREF after the session
 record has been created, you will need to modify any session variable
@@ -211,6 +234,38 @@
 <p>3. You can scan the sessions table to ensure no user
 can be logged in twice. Useful for security reasons.
 </p>
+<h3>Using Oracle CLOBs</h3>
+<p>Suppose you are storing the DATA field in a CLOB:
+ <pre><font color="#004040">
+   CREATE TABLE sessions (
+       SESSKEY VARCHAR(32) NOT NULL,
+       EXPIRY NUMBER(16)  NOT NULL,
+       EXPIREREF VARCHAR(64),
+       DATA CLOB,
+      PRIMARY KEY (sesskey)
+  );</font>
+ </pre> 
+ <p>Then your PHP code could look like this:
+        <pre>
+       ADODB_SESSION_DRIVER='oci8';
+       $ADODB_SESSION_CONNECT=$tnsname;
+       $ADODB_SESSION_USER ='scott';
+       $ADODB_SESSION_PWD = 'tiger';
+       $ADODB_SESSION_DB ='';
+       
+       $ADODB_SESSION_USE_LOBS = 'clob';
+       $ADODB_SESSION_TBL = 'sessions';
+       
+       $ADODB_SESS_DEBUG=0;
+       
+       include(ADODB_DIR.'/session/adodb-session.php');
+       
+       ADODB_Session::persist('P'); # use 'C' for non-persistent connects
+       
+       session_start();
+ </pre>
+ <p>Note that you can set persistance using ADODB_Session::persist('P').
+ 
 <h3>Compression/Encryption Schemes</h3>
 Since ADOdb 4.05, thanks to Ross Smith, multiple encryption and
 compression schemes are supported. Currently, supported are:
@@ -238,7 +293,8 @@
        # This is extremely simplistic example, better 
        # to regenerate only when the user logs in or changes
        # user privilege levels.
-       if ((rand()%10) == 0) adodb_session_regenerate_id(); </pre>
+       if ((rand()%10) == 0) adodb_session_regenerate_id(); 
+</pre>
 <p>This function calls session_regenerate_id() internally or simulates it if 
the function does not exist.
 <h2>More Info</h2>
 <p>Also see the <a href="docs-adodb.htm">core ADOdb documentation</a>.

Index: drivers/adodb-access.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-access.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-access.inc.php        18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-access.inc.php        22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: drivers/adodb-ado.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-ado.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-ado.inc.php   18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-ado.inc.php   22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 
@@ -263,6 +263,7 @@
                $this->transCnt += 1;
                return true;
        }
+       
        function CommitTrans($ok=true) 
        { 
                if (!$ok) return $this->RollbackTrans();
@@ -283,7 +284,9 @@
 
        function ErrorMsg() 
        {
+               if (!$this->_connectionID) return "No connection established";
                $errc = $this->_connectionID->Errors;
+               if (!$errc) return "No Errors object found";
                if ($errc->Count == 0) return '';
                $err = $errc->Item($errc->Count-1);
                return $err->Description;

Index: drivers/adodb-ado5.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-ado5.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-ado5.inc.php  18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-ado5.inc.php  22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 
@@ -58,8 +58,22 @@
        // you can also pass a connection string like this:
        //
        // $DB->Connect('USER 
ID=sa;PASSWORD=pwd;SERVER=mangrove;DATABASE=ai',false,false,'SQLOLEDB');
-       function _connect($argHostname, $argUsername, $argPassword, 
$argProvider= 'MSDASQL')
+       function _connect($argHostname, $argUsername, 
$argPassword,$argDBorProvider, $argProvider= '')
        {
+       // two modes
+       //      -       if $argProvider is empty, we assume that 
$argDBorProvider holds provider -- this is for backward compat
+       //      -       if $argProvider is not empty, then $argDBorProvider 
holds db
+       
+               
+                if ($argProvider) {
+                       $argDatabasename = $argDBorProvider;
+                } else {
+                       $argDatabasename = '';
+                       if ($argDBorProvider) $argProvider = $argDBorProvider;
+                       else $argProvider = 'MSDASQL';
+               }
+               
+               
                try {
                $u = 'UID';
                $p = 'PWD';
@@ -87,6 +101,10 @@
                
                if ($argProvider) $dbc->Provider = $argProvider;        
                
+               if ($argProvider) $argHostname = 
"PROVIDER=$argProvider;DRIVER={SQL Server};SERVER=$argHostname";       
+               
+
+               if ($argDatabasename) $argHostname .= 
";DATABASE=$argDatabasename";             
                if ($argUsername) $argHostname .= ";$u=$argUsername";
                if ($argPassword)$argHostname .= ";$p=$argPassword";
                
@@ -205,9 +223,6 @@
                return $arr;
        }
        
-
-
-       
        /* returns queryID or false */
        function &_query($sql,$inputarr=false) 
        {
@@ -216,6 +231,9 @@
                $dbc = $this->_connectionID;
                
        //      return rs       
+       
+               $false = false;
+               
                if ($inputarr) {
                        
                        if (!empty($this->charPage))
@@ -236,22 +254,25 @@
                        $p = false;
                        $rs = $oCmd->Execute();
                        $e = $dbc->Errors;
-                       if ($dbc->Errors->Count > 0) return false;
+                       if ($dbc->Errors->Count > 0) return $false;
                        return $rs;
                }
                
                $rs = @$dbc->Execute($sql,$this->_affectedRows, 
$this->_execute_option);
                        
-               if ($dbc->Errors->Count > 0) return false;
-               if (! $rs) return false;
+               if ($dbc->Errors->Count > 0) return $false;
+               if (! $rs) return $false;
                
-               if ($rs->State == 0) return true; // 0 = adStateClosed means no 
records returned
+               if ($rs->State == 0) {
+                       $true = true;
+                       return $true; // 0 = adStateClosed means no records 
returned
+               }
                return $rs;
                
                } catch (exception $e) {
                        
                }
-               return false;
+               return $false;
        }
 
        
@@ -290,10 +311,18 @@
 
        function ErrorMsg() 
        {
+               if (!$this->_connectionID) return "No connection established";
+               $errmsg = '';
+               
+               try {
                $errc = $this->_connectionID->Errors;
+                       if (!$errc) return "No Errors object found";
                if ($errc->Count == 0) return '';
                $err = $errc->Item($errc->Count-1);
-               return $err->Description;
+                       $errmsg = $err->Description;
+               }catch(exception $e) {
+               }
+               return $errmsg;
        }
        
        function ErrorNo() 

Index: drivers/adodb-ado_access.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-ado_access.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-ado_access.inc.php    18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-ado_access.inc.php    22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: drivers/adodb-ado_mssql.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-ado_mssql.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-ado_mssql.inc.php     18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-ado_mssql.inc.php     22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 
@@ -11,8 +11,8 @@
   Microsoft SQL Server ADO data driver. Requires ADO and MSSQL client. 
   Works only on MS Windows.
   
-  It is normally better to use the mssql driver directly because it is much 
faster. 
-  This file is only a technology demonstration and for test purposes.
+  Warning: Some versions of PHP (esp PHP4) leak memory when ADO/COM is used. 
+  Please check http://bugs.php.net/ for more info.
 */
 
 // security - hide paths
@@ -53,6 +53,17 @@
                return $this->GetOne('select @@rowcount');
        }
        
+       function SetTransactionMode( $transaction_mode ) 
+       {
+               $this->_transmode  = $transaction_mode;
+               if (empty($transaction_mode)) {
+                       $this->Execute('SET TRANSACTION ISOLATION LEVEL READ 
COMMITTED');
+                       return;
+               }
+               if (!stristr($transaction_mode,'isolation')) $transaction_mode 
= 'ISOLATION LEVEL '.$transaction_mode;
+               $this->Execute("SET TRANSACTION ".$transaction_mode);
+       }
+       
        function MetaColumns($table)
        {
         $table = strtoupper($table);
@@ -84,6 +95,44 @@
                return empty($arr) ? $false : $arr;
        }
        
+       function CreateSequence($seq='adodbseq',$start=1)
+       {
+               
+               $this->Execute('BEGIN TRANSACTION adodbseq');
+               $start -= 1;
+               $this->Execute("create table $seq (id float(53))");
+               $ok = $this->Execute("insert into $seq with (tablock,holdlock) 
values($start)");
+               if (!$ok) {
+                               $this->Execute('ROLLBACK TRANSACTION adodbseq');
+                               return false;
+               }
+               $this->Execute('COMMIT TRANSACTION adodbseq'); 
+               return true;
+       }
+
+       function GenID($seq='adodbseq',$start=1)
+       {
+               //$this->debug=1;
+               $this->Execute('BEGIN TRANSACTION adodbseq');
+               $ok = $this->Execute("update $seq with (tablock,holdlock) set 
id = id + 1");
+               if (!$ok) {
+                       $this->Execute("create table $seq (id float(53))");
+                       $ok = $this->Execute("insert into $seq with 
(tablock,holdlock) values($start)");
+                       if (!$ok) {
+                               $this->Execute('ROLLBACK TRANSACTION adodbseq');
+                               return false;
+                       }
+                       $this->Execute('COMMIT TRANSACTION adodbseq'); 
+                       return $start;
+               }
+               $num = $this->GetOne("select id from $seq");
+               $this->Execute('COMMIT TRANSACTION adodbseq'); 
+               return $num;
+               
+               // in old implementation, pre 1.90, we returned GUID...
+               //return $this->GetOne("SELECT CONVERT(varchar(255), NEWID()) 
AS 'Char'");
+       }
+       
        } // end class 
        
        class  ADORecordSet_ado_mssql extends ADORecordSet_ado {        

Index: drivers/adodb-borland_ibase.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-borland_ibase.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-borland_ibase.inc.php 18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-borland_ibase.inc.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: drivers/adodb-csv.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-csv.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-csv.inc.php   18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-csv.inc.php   22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.

Index: drivers/adodb-db2.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-db2.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-db2.inc.php   18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-db2.inc.php   22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-  V4.80 8 Mar 2006  (c) 2006 John Lim (address@hidden). All rights reserved.
+  V4.90 8 June 2006  (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.
@@ -25,7 +25,14 @@
 class ADODB_db2 extends ADOConnection {
        var $databaseType = "db2";      
        var $fmtDate = "'Y-m-d'";
-       var $fmtTimeStamp = "'Y-m-d, h:i:sA'";
+       var $concat_operator = '||';
+       
+       var $sysTime = 'CURRENT TIME';
+       var $sysDate = 'CURRENT DATE';
+       var $sysTimeStamp = 'CURRENT TIMESTAMP';
+       
+       var $fmtTimeStamp = "'Y-m-d-H.i.s'";
+       #var $fmtTimeStamp = "'Y-m-d, h:i:sA'";
        var $replaceQuote = "''"; // string to use to replace quotes
        var $dataProvider = "db2";
        var $hasAffectedRows = true;
@@ -40,6 +47,12 @@
        var $_haserrorfunctions = true;
        var $_lastAffectedRows = 0;
        var $uCaseTables = true; // for meta* functions, uppercase table names
+       var $hasInsertID = true;
+       
+    function _insertid()
+    {
+        return ADOConnection::GetOne('VALUES IDENTITY_VAL_LOCAL()');
+    }
        
        function ADODB_db2() 
        {       
@@ -104,6 +117,61 @@
        }
 
        
+       // Format date column in sql string given an input format that 
understands Y M D
+       function SQLDate($fmt, $col=false)
+       {       
+       // use right() and replace() ?
+               if (!$col) $col = $this->sysDate;
+               $s = '';
+               
+               $len = strlen($fmt);
+               for ($i=0; $i < $len; $i++) {
+                       if ($s) $s .= $this->concat_operator;
+                       $ch = $fmt[$i];
+                       switch($ch) {
+                       case 'Y':
+                       case 'y':
+                               $s .= "char(year($col))";
+                               break;
+                       case 'M':
+                               $s .= "substr(monthname($col),1,3)";
+                               break;
+                       case 'm':
+                               $s .= "right(digits(month($col)),2)";
+                               break;
+                       case 'D':
+                       case 'd':
+                               $s .= "right(digits(day($col)),2)";
+                               break;
+                       case 'H':
+                       case 'h':
+                               if ($col != $this->sysDate) $s .= 
"right(digits(hour($col)),2)";        
+                               else $s .= "''";
+                               break;
+                       case 'i':
+                       case 'I':
+                               if ($col != $this->sysDate)
+                                       $s .= "right(digits(minute($col)),2)";
+                                       else $s .= "''";
+                               break;
+                       case 'S':
+                       case 's':
+                               if ($col != $this->sysDate)
+                                       $s .= "right(digits(second($col)),2)";
+                               else $s .= "''";
+                               break;
+                       default:
+                               if ($ch == '\\') {
+                                       $i++;
+                                       $ch = substr($fmt,$i,1);
+                               }
+                               $s .= $this->qstr($ch);
+                       }
+               }
+               return $s;
+       } 
+ 
+       
        function ServerInfo()
        {
        
@@ -575,15 +643,12 @@
 
 
        // returns the field object
-       function &FetchField($fieldOffset = -1) 
+       function &FetchField($offset = -1) 
        {
-               
-               $off=$fieldOffset+1; // offsets begin at 1
-               
                $o= new ADOFieldObject();
-               $o->name = @db2_field_name($this->_queryID,$off);
-               $o->type = @db2_field_type($this->_queryID,$off);
-               $o->max_length = db2_field_width($this->_queryID,$off);
+               $o->name = @db2_field_name($this->_queryID,$offset);
+               $o->type = @db2_field_type($this->_queryID,$offset);
+               $o->max_length = db2_field_width($this->_queryID,$offset);
                if (ADODB_ASSOC_CASE == 0) $o->name = strtolower($o->name);
                else if (ADODB_ASSOC_CASE == 1) $o->name = strtoupper($o->name);
                return $o;

Index: drivers/adodb-fbsql.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-fbsql.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-fbsql.inc.php 18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-fbsql.inc.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
- @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+ @version 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. 

Index: drivers/adodb-firebird.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-firebird.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-firebird.inc.php      18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-firebird.inc.php      22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: drivers/adodb-ibase.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-ibase.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-ibase.inc.php 18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-ibase.inc.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.  
+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.
@@ -558,7 +558,7 @@
        // still used to auto-decode all blob's
        function _BlobDecode( $blob ) 
        {
-               $blobid = ibase_blob_open( $blob );
+               $blobid = ibase_blob_open($this->_connectionID, $blob );
                $realblob = ibase_blob_get( $blobid,$this->maxblobsize); // 2nd 
param is max size of blob -- Kevin Boillet <address@hidden>
                while($string = ibase_blob_get($blobid, 8192)){ 
                        $realblob .= $string; 

Index: drivers/adodb-informix.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-informix.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-informix.inc.php      18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-informix.inc.php      22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /**
-* @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+* @version 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.
@@ -22,6 +22,11 @@
        var $databaseType = "informix";
        var $hasTop = 'FIRST';
        var $ansiOuter = true;
+       
+       function IfNull( $field, $ifNull )
+       {
+               return " NVL($field, $ifNull) "; // if Informix 9.X or 10.X
+       }
 }
 
 class ADORecordset_informix extends ADORecordset_informix72 {

Index: drivers/adodb-informix72.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-informix72.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-informix72.inc.php    18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-informix72.inc.php    22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim. All rights reserved.
+V4.90 8 June 2006  (c) 2000-2006 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: drivers/adodb-ldap.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-ldap.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-ldap.inc.php  18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-ldap.inc.php  22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
+  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.

Index: drivers/adodb-mssql.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-mssql.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-mssql.inc.php 18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-mssql.inc.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 
@@ -296,6 +296,17 @@
                return true;
        }
        
+       function SetTransactionMode( $transaction_mode ) 
+       {
+               $this->_transmode  = $transaction_mode;
+               if (empty($transaction_mode)) {
+                       $this->Execute('SET TRANSACTION ISOLATION LEVEL READ 
COMMITTED');
+                       return;
+               }
+               if (!stristr($transaction_mode,'isolation')) $transaction_mode 
= 'ISOLATION LEVEL '.$transaction_mode;
+               $this->Execute("SET TRANSACTION ".$transaction_mode);
+       }
+       
        /*
                Usage:
                

Index: drivers/adodb-mssqlpo.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-mssqlpo.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-mssqlpo.inc.php       18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-mssqlpo.inc.php       22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /**
-* @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+* @version 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.

Index: drivers/adodb-mysql.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-mysql.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-mysql.inc.php 18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-mysql.inc.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.
@@ -542,6 +542,9 @@
        // "Innox - Juan Carlos Gonzalez" <jgonzalez#innox.com.mx>
        function MetaForeignKeys( $table, $owner = FALSE, $upper = FALSE, 
$associative = FALSE )
      {
+        global $ADODB_FETCH_MODE;
+               if ($ADODB_FETCH_MODE == ADODB_FETCH_ASSOC || $this->fetchMode 
== ADODB_FETCH_ASSOC) $associative = true;
+
          if ( !empty($owner) ) {
             $table = "$owner.$table";
          }
@@ -637,8 +640,8 @@
 
        function &GetRowAssoc($upper=true)
        {
-               if ($this->fetchMode == MYSQL_ASSOC && !$upper) return 
$this->fields;
-               $row =& ADORecordSet::GetRowAssoc($upper);
+               if ($this->fetchMode == MYSQL_ASSOC && !$upper) $row = 
$this->fields;
+               else $row =& ADORecordSet::GetRowAssoc($upper);
                return $row;
        }
        

Index: drivers/adodb-mysqli.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-mysqli.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-mysqli.inc.php        18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-mysqli.inc.php        22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.
@@ -58,6 +58,16 @@
            
        }
        
+       function SetTransactionMode( $transaction_mode ) 
+       {
+               $this->_transmode  = $transaction_mode;
+               if (empty($transaction_mode)) {
+                       $this->Execute('SET SESSION TRANSACTION ISOLATION LEVEL 
REPEATABLE READ');
+                       return;
+               }
+               if (!stristr($transaction_mode,'isolation')) $transaction_mode 
= 'ISOLATION LEVEL '.$transaction_mode;
+               $this->Execute("SET SESSION TRANSACTION ".$transaction_mode);
+       }
 
        // returns true or false
        // To add: parameter int $port,
@@ -445,6 +455,10 @@
        // "Innox - Juan Carlos Gonzalez" <jgonzalez#innox.com.mx>
        function MetaForeignKeys( $table, $owner = FALSE, $upper = FALSE, 
$associative = FALSE )
        {
+        global $ADODB_FETCH_MODE;
+               
+               if ($ADODB_FETCH_MODE == ADODB_FETCH_ASSOC || $this->fetchMode 
== ADODB_FETCH_ASSOC) $associative = true;
+               
            if ( !empty($owner) ) {
               $table = "$owner.$table";
            }
@@ -680,7 +694,7 @@
   function GetCharSet()
   {
     //we will use ADO's builtin property charSet
-    if (!is_callable($this->_connectionID,'character_set_name'))
+    if (!method_exists($this->_connectionID,'character_set_name'))
        return false;
        
     $this->charSet = @$this->_connectionID->character_set_name();
@@ -694,7 +708,7 @@
   // SetCharSet - switch the client encoding
   function SetCharSet($charset_name)
   {
-    if (!is_callable($this->_connectionID,'set_charset'))
+    if (!method_exists($this->_connectionID,'set_charset'))
        return false;
 
     if ($this->charSet !== $charset_name) {

Index: drivers/adodb-mysqlt.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-mysqlt.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-mysqlt.inc.php        18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-mysqlt.inc.php        22 Jun 2006 09:06:37 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.
@@ -30,6 +30,23 @@
        global $ADODB_EXTENSION; if ($ADODB_EXTENSION) $this->rsPrefix .= 
'ext_';
        }
        
+       /* set transaction mode
+       
+       SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL
+{ READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE }
+
+       */
+       function SetTransactionMode( $transaction_mode ) 
+       {
+               $this->_transmode  = $transaction_mode;
+               if (empty($transaction_mode)) {
+                       $this->Execute('SET SESSION TRANSACTION ISOLATION LEVEL 
REPEATABLE READ');
+                       return;
+               }
+               if (!stristr($transaction_mode,'isolation')) $transaction_mode 
= 'ISOLATION LEVEL '.$transaction_mode;
+               $this->Execute("SET SESSION TRANSACTION ".$transaction_mode);
+       }
+       
        function BeginTrans()
        {         
                if ($this->transOff) return true;

Index: drivers/adodb-netezza.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-netezza.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-netezza.inc.php       18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-netezza.inc.php       22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
+  V4.90 8 June 2006  (c) 2000-2006 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: drivers/adodb-oci8.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-oci8.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-oci8.inc.php  18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-oci8.inc.php  22 Jun 2006 09:06:37 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 /*
 
-  version V4.80 8 Mar 2006 (c) 2000-2006 John Lim. All rights reserved.
+  version V4.90 8 June 2006 (c) 2000-2006 John Lim. All rights reserved.
 
   Released under both BSD license and Lesser GPL library license. 
   Whenever there is any discrepancy between the two licenses, 
@@ -278,6 +278,21 @@
                return 
"TO_DATE(".adodb_date($this->fmtDate,$d).",'".$this->NLS_DATE_FORMAT."')";
        }
 
+       function BindDate($d)
+       {
+               $d = ADOConnection::DBDate($d);
+               if (strncmp($d,"'",1)) return $d;
+               
+               return substr($d,1,strlen($d)-2);
+       }
+       
+       function BindTimeStamp($d)
+       {
+               $d = ADOConnection::DBTimeStamp($d);
+               if (strncmp($d,"'",1)) return $d;
+               
+               return substr($d,1,strlen($d)-2);
+       }
        
        // format and return date string in database timestamp format
        function DBTimeStamp($ts)
@@ -381,6 +396,8 @@
                $this->transCnt += 1;
                $this->autoCommit = false;
                $this->_commit = OCI_DEFAULT;
+               
+               if ($this->_transmode) $this->Execute("SET TRANSACTION 
".$this->_transmode);
                return true;
        }
        

Index: drivers/adodb-oci805.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-oci805.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-oci805.inc.php        18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-oci805.inc.php        22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /** 
- * @version V4.80 8 Mar 2006 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version 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. 

Index: drivers/adodb-oci8po.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-oci8po.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-oci8po.inc.php        18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-oci8po.inc.php        22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim. All rights reserved.
+V4.90 8 June 2006  (c) 2000-2006 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: drivers/adodb-odbc.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-odbc.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-odbc.inc.php  18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-odbc.inc.php  22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
+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. 

Index: drivers/adodb-odbc_db2.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-odbc_db2.inc.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- drivers/adodb-odbc_db2.inc.php      18 Mar 2006 16:53:17 -0000      1.2
+++ drivers/adodb-odbc_db2.inc.php      22 Jun 2006 09:06:37 -0000      1.3
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 
@@ -60,7 +60,7 @@
 ========================
 To set SQL_CUR_USE_ODBC for drivers that require it, do this:
 
-$db = NewADOConnection('db2');
+$db = NewADOConnection('odbc_db2');
 $db->curMode = SQL_CUR_USE_ODBC;
 $db->Connect($dsn, $userid, $pwd);
 
@@ -80,6 +80,10 @@
 > In case of DB2 I had to swap the first and last arguments in order to 
 > connect properly. 
 
 
+System Error 5
+==============
+IF you get a System Error 5 when trying to Connect/Load, it could be a 
permission problem. Give the user connecting
+to DB2 full rights to the DB2 SQLLIB directory, and place the user in the 
DBUSERS group.
 */
 
 // security - hide paths
@@ -88,13 +92,14 @@
 if (!defined('_ADODB_ODBC_LAYER')) {
        include(ADODB_DIR."/drivers/adodb-odbc.inc.php");
 }
-if (!defined('ADODB_DB2')){
-define('ADODB_DB2',1);
+if (!defined('ADODB_ODBC_DB2')){
+define('ADODB_ODBC_DB2',1);
 
-class ADODB_DB2 extends ADODB_odbc {
+class ADODB_ODBC_DB2 extends ADODB_odbc {
        var $databaseType = "db2";      
        var $concat_operator = '||';
-       var $sysDate = 'CURRENT_DATE';
+       var $sysTime = 'CURRENT TIME';
+       var $sysDate = 'CURRENT DATE';
        var $sysTimeStamp = 'CURRENT TIMESTAMP';
        // The complete string representation of a timestamp has the form 
        // yyyy-mm-dd-hh.mm.ss.nnnnnn.
@@ -103,6 +108,7 @@
        var $identitySQL = 'values IDENTITY_VAL_LOCAL()';
        var $_bindInputArray = true;
         var $hasInsertID = true;
+       var $rsPrefix = 'ADORecordset_odbc_';
        
        function ADODB_DB2()
        {
@@ -294,7 +300,7 @@
 };
  
 
-class  ADORecordSet_db2 extends ADORecordSet_odbc {    
+class  ADORecordSet_odbc_db2 extends ADORecordSet_odbc {       
        
        var $databaseType = "db2";              
        

Index: drivers/adodb-odbc_mssql.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-odbc_mssql.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-odbc_mssql.inc.php    18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-odbc_mssql.inc.php    22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 
@@ -142,6 +142,17 @@
                return ADODB_odbc::_query($sql,$inputarr);
        }
        
+       function SetTransactionMode( $transaction_mode ) 
+       {
+               $this->_transmode  = $transaction_mode;
+               if (empty($transaction_mode)) {
+                       $this->Execute('SET TRANSACTION ISOLATION LEVEL READ 
COMMITTED');
+                       return;
+               }
+               if (!stristr($transaction_mode,'isolation')) $transaction_mode 
= 'ISOLATION LEVEL '.$transaction_mode;
+               $this->Execute("SET TRANSACTION ".$transaction_mode);
+       }
+       
        // "Stein-Aksel Basma" <address@hidden>
        // tested with MSSQL 2000
        function &MetaPrimaryKeys($table)

Index: drivers/adodb-odbc_oracle.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-odbc_oracle.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-odbc_oracle.inc.php   18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-odbc_oracle.inc.php   22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: drivers/adodb-odbtp.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-odbtp.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-odbtp.inc.php 18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-odbtp.inc.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: drivers/adodb-odbtp_unicode.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-odbtp_unicode.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-odbtp_unicode.inc.php 18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-odbtp_unicode.inc.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-       V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+       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.

Index: drivers/adodb-oracle.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-oracle.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-oracle.inc.php        18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-oracle.inc.php        22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.
@@ -47,6 +47,24 @@
        }
 
        
+       function BindDate($d)
+       {
+               $d = ADOConnection::DBDate($d);
+               if (strncmp($d,"'",1)) return $d;
+               
+               return substr($d,1,strlen($d)-2);
+       }
+       
+       function BindTimeStamp($d)
+       {
+               $d = ADOConnection::DBTimeStamp($d);
+               if (strncmp($d,"'",1)) return $d;
+               
+               return substr($d,1,strlen($d)-2);
+       }
+       
+
+       
        function BeginTrans()
        {         
                 $this->autoCommit = false;

Index: drivers/adodb-pdo.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-pdo.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-pdo.inc.php   18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-pdo.inc.php   22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
+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. 

Index: drivers/adodb-pdo_mssql.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-pdo_mssql.inc.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- drivers/adodb-pdo_mssql.inc.php     18 Mar 2006 16:53:17 -0000      1.2
+++ drivers/adodb-pdo_mssql.inc.php     22 Jun 2006 09:06:37 -0000      1.3
@@ -2,7 +2,7 @@
 
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.
@@ -36,6 +36,17 @@
                return $ret;
        }
        
+       function SetTransactionMode( $transaction_mode ) 
+       {
+               $this->_transmode  = $transaction_mode;
+               if (empty($transaction_mode)) {
+                       $this->Execute('SET TRANSACTION ISOLATION LEVEL READ 
COMMITTED');
+                       return;
+               }
+               if (!stristr($transaction_mode,'isolation')) $transaction_mode 
= 'ISOLATION LEVEL '.$transaction_mode;
+               $this->Execute("SET TRANSACTION ".$transaction_mode);
+       }
+       
        function MetaTables()
        {
                return false;

Index: drivers/adodb-pdo_mysql.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-pdo_mysql.inc.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- drivers/adodb-pdo_mysql.inc.php     18 Mar 2006 16:53:17 -0000      1.2
+++ drivers/adodb-pdo_mysql.inc.php     22 Jun 2006 09:06:37 -0000      1.3
@@ -2,7 +2,7 @@
 
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.
@@ -50,6 +50,17 @@
                return $ret;
        }
        
+       function SetTransactionMode( $transaction_mode ) 
+       {
+               $this->_transmode  = $transaction_mode;
+               if (empty($transaction_mode)) {
+                       $this->Execute('SET TRANSACTION ISOLATION LEVEL 
REPEATABLE READ');
+                       return;
+               }
+               if (!stristr($transaction_mode,'isolation')) $transaction_mode 
= 'ISOLATION LEVEL '.$transaction_mode;
+               $this->Execute("SET SESSION TRANSACTION ".$transaction_mode);
+       }
+       
        function &MetaColumns($table) 
        {
                $this->_findschema($table,$schema);

Index: drivers/adodb-pdo_oci.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-pdo_oci.inc.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- drivers/adodb-pdo_oci.inc.php       18 Mar 2006 16:53:17 -0000      1.2
+++ drivers/adodb-pdo_oci.inc.php       22 Jun 2006 09:06:37 -0000      1.3
@@ -2,7 +2,7 @@
 
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.

Index: drivers/adodb-pdo_pgsql.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-pdo_pgsql.inc.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- drivers/adodb-pdo_pgsql.inc.php     18 Mar 2006 16:53:17 -0000      1.2
+++ drivers/adodb-pdo_pgsql.inc.php     22 Jun 2006 09:06:37 -0000      1.3
@@ -1,7 +1,7 @@
 <?php
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.

Index: drivers/adodb-postgres.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-postgres.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-postgres.inc.php      18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-postgres.inc.php      22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
- V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+ 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.

Index: drivers/adodb-postgres64.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-postgres64.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-postgres64.inc.php    18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-postgres64.inc.php    22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
- V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+ 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.
@@ -174,7 +174,7 @@
        {
                if ($this->transOff) return true;
                $this->transCnt += 1;
-               return @pg_Exec($this->_connectionID, "begin");
+               return @pg_Exec($this->_connectionID, "begin 
".$this->_transmode);
        }
        
        function RowLock($tables,$where,$flds='1 as ignore') 
@@ -532,6 +532,8 @@
                        $fld->name = $rs->fields[0];
                        $fld->type = $rs->fields[1];
                        $fld->max_length = $rs->fields[2];
+                       $fld->attnum = $rs->fields[6];
+                       
                        if ($fld->max_length <= 0) $fld->max_length = 
$rs->fields[3]-4;
                        if ($fld->max_length <= 0) $fld->max_length = -1;
                        if ($fld->type == 'numeric') {
@@ -617,12 +619,14 @@
                                        return $false;
                 }
                                
-                $col_names = $this->MetaColumnNames($table,true);
+                $col_names = $this->MetaColumnNames($table,true,true); 
+                               //3rd param is use attnum, 
+                               // see 
http://sourceforge.net/tracker/index.php?func=detail&aid=1451245&group_id=42718&atid=433976
                 $indexes = array();
                 while ($row = $rs->FetchRow()) {
                         $columns = array();
                         foreach (explode(' ', $row[2]) as $col) {
-                                $columns[] = $col_names[$col - 1];
+                                $columns[] = $col_names[$col];
                         }
                         
                         $indexes[$row[0]] = array(
@@ -701,7 +705,7 @@
        // returns queryID or false
        function _query($sql,$inputarr)
        {
-               
+               $this->_errorMsg = false;
                if ($inputarr) {
                /*
                        It appears that PREPARE/EXECUTE is slower for many 
queries.
@@ -731,6 +735,7 @@
                        if ($execp) $exsql = "EXECUTE $plan ($execp)";
                        else $exsql = "EXECUTE $plan";
                        
+                       
                        $rez = @pg_exec($this->_connectionID,$exsql);
                        if (!$rez) {
                        # Perhaps plan does not exist? Prepare/compile plan.
@@ -756,12 +761,11 @@
                                $s = "PREPARE $plan ($params) AS 
".substr($sql,0,strlen($sql)-2);               
                                //adodb_pr($s);
                                pg_exec($this->_connectionID,$s);
-                               echo $this->ErrorMsg();
+                               //echo $this->ErrorMsg();
                        }
                        
                        $rez = pg_exec($this->_connectionID,$exsql);
                } else {
-                       $this->_errorMsg = false;
                        //adodb_backtrace();
                        $rez = pg_exec($this->_connectionID,$sql);
                }
@@ -1000,6 +1004,7 @@
                                case 'BPCHAR':
                                case '_VARCHAR':
                                case 'INET':
+                               case 'MACADDR':
                                        if ($len <= $this->blobSize) return 'C';
                                
                                case 'TEXT':
@@ -1019,6 +1024,8 @@
                                case 'DATE':
                                        return 'D';
                                
+                               
+                               case 'TIMESTAMP WITHOUT TIME ZONE':
                                case 'TIME':
                                case 'DATETIME':
                                case 'TIMESTAMP':

Index: drivers/adodb-postgres7.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-postgres7.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-postgres7.inc.php     18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-postgres7.inc.php     22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
- V4.80 8 Mar 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
+ 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.
@@ -56,6 +56,7 @@
        }
        */
 
+
        // from  Edward Jaramilla, improved version - works on pg 7.4
        function MetaForeignKeys($table, $owner=false, $upper=false)
        {
@@ -96,6 +97,7 @@
                        // We don't have native support for parameterized 
queries, so let's emulate it at the parent
                        return ADODB_postgres64::_query($sql, $inputarr);
                }
+               $this->_errorMsg = false;
                // -- added Cristiano da Cunha Duarte
                if ($inputarr) {
                        $sqlarr = explode('?',trim($sql));

Index: drivers/adodb-postgres8.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-postgres8.inc.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- drivers/adodb-postgres8.inc.php     18 Mar 2006 16:53:17 -0000      1.2
+++ drivers/adodb-postgres8.inc.php     22 Jun 2006 09:06:37 -0000      1.3
@@ -1,6 +1,6 @@
 <?php
 /*
- V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+ 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.

Index: drivers/adodb-proxy.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-proxy.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-proxy.inc.php 18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-proxy.inc.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.

Index: drivers/adodb-sapdb.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-sapdb.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-sapdb.inc.php 18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-sapdb.inc.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: drivers/adodb-sqlanywhere.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-sqlanywhere.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-sqlanywhere.inc.php   18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-sqlanywhere.inc.php   22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-version V4.80 8 Mar 2006 (c) 2000-2006  John Lim (address@hidden).  All rights
+version 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, 

Index: drivers/adodb-sqlite.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-sqlite.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-sqlite.inc.php        18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-sqlite.inc.php        22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.

Index: drivers/adodb-sqlitepo.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-sqlitepo.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-sqlitepo.inc.php      18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-sqlitepo.inc.php      22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.

Index: drivers/adodb-sybase.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-sybase.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-sybase.inc.php        18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-sybase.inc.php        22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim. All rights reserved.
+V4.90 8 June 2006  (c) 2000-2006 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: drivers/adodb-sybase_ase.inc.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-sybase_ase.inc.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- drivers/adodb-sybase_ase.inc.php    18 Mar 2006 16:53:17 -0000      1.2
+++ drivers/adodb-sybase_ase.inc.php    22 Jun 2006 09:06:37 -0000      1.3
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: drivers/adodb-vfp.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/drivers/adodb-vfp.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- drivers/adodb-vfp.inc.php   18 Mar 2006 16:53:17 -0000      1.4
+++ drivers/adodb-vfp.inc.php   22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: pear/Auth/Container/ADOdb.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/pear/Auth/Container/ADOdb.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- pear/Auth/Container/ADOdb.php       18 Mar 2006 16:53:17 -0000      1.1
+++ pear/Auth/Container/ADOdb.php       22 Jun 2006 09:06:37 -0000      1.2
@@ -17,7 +17,7 @@
 // |   Richard Tango-Lowy <address@hidden>                                  |
 // +----------------------------------------------------------------------+
 //
-// $Id: ADOdb.php,v 1.1 2006/03/18 16:53:17 sigurdne Exp $
+// $Id: ADOdb.php,v 1.2 2006/06/22 09:06:37 sigurdne Exp $
 //
 
 require_once 'Auth/Container.php';
@@ -35,7 +35,7 @@
  *
  * @author   Richard Tango-Lowy <address@hidden>
  * @package  Auth
- * @version  $Revision: 1.1 $
+ * @version  $Revision: 1.2 $
  */
 class Auth_Container_ADOdb extends Auth_Container
 {

Index: perf/perf-db2.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/perf/perf-db2.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- perf/perf-db2.inc.php       18 Mar 2006 16:53:17 -0000      1.4
+++ perf/perf-db2.inc.php       22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: perf/perf-informix.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/perf/perf-informix.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- perf/perf-informix.inc.php  18 Mar 2006 16:53:17 -0000      1.4
+++ perf/perf-informix.inc.php  22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: perf/perf-mssql.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/perf/perf-mssql.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- perf/perf-mssql.inc.php     18 Mar 2006 16:53:17 -0000      1.4
+++ perf/perf-mssql.inc.php     22 Jun 2006 09:06:37 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: perf/perf-mysql.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/perf/perf-mysql.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- perf/perf-mysql.inc.php     18 Mar 2006 16:53:17 -0000      1.4
+++ perf/perf-mysql.inc.php     22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: perf/perf-oci8.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/perf/perf-oci8.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- perf/perf-oci8.inc.php      18 Mar 2006 16:53:17 -0000      1.4
+++ perf/perf-oci8.inc.php      22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: perf/perf-postgres.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/perf/perf-postgres.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- perf/perf-postgres.inc.php  18 Mar 2006 16:53:17 -0000      1.4
+++ perf/perf-postgres.inc.php  22 Jun 2006 09:06:37 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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. 

Index: session/adodb-compress-bzip2.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/session/adodb-compress-bzip2.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- session/adodb-compress-bzip2.php    18 Mar 2006 16:53:17 -0000      1.4
+++ session/adodb-compress-bzip2.php    22 Jun 2006 09:06:37 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.90 8 June 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
          Contributed by Ross Smith (address@hidden). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,

Index: session/adodb-compress-gzip.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/session/adodb-compress-gzip.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- session/adodb-compress-gzip.php     18 Mar 2006 16:53:17 -0000      1.4
+++ session/adodb-compress-gzip.php     22 Jun 2006 09:06:37 -0000      1.5
@@ -2,7 +2,7 @@
 
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.90 8 June 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
          Contributed by Ross Smith (address@hidden). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,

Index: session/adodb-cryptsession.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/session/adodb-cryptsession.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- session/adodb-cryptsession.php      18 Mar 2006 16:53:17 -0000      1.4
+++ session/adodb-cryptsession.php      22 Jun 2006 09:06:37 -0000      1.5
@@ -2,7 +2,7 @@
 
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.90 8 June 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
          Contributed by Ross Smith (address@hidden). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,

Index: session/adodb-encrypt-mcrypt.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/session/adodb-encrypt-mcrypt.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- session/adodb-encrypt-mcrypt.php    18 Mar 2006 16:53:17 -0000      1.4
+++ session/adodb-encrypt-mcrypt.php    22 Jun 2006 09:06:37 -0000      1.5
@@ -2,7 +2,7 @@
 
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.90 8 June 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
          Contributed by Ross Smith (address@hidden). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,

Index: session/adodb-encrypt-md5.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/session/adodb-encrypt-md5.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- session/adodb-encrypt-md5.php       18 Mar 2006 16:53:17 -0000      1.4
+++ session/adodb-encrypt-md5.php       22 Jun 2006 09:06:37 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.90 8 June 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
          Contributed by Ross Smith (address@hidden). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,

Index: session/adodb-encrypt-secret.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/session/adodb-encrypt-secret.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- session/adodb-encrypt-secret.php    18 Mar 2006 16:53:17 -0000      1.4
+++ session/adodb-encrypt-secret.php    22 Jun 2006 09:06:37 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.90 8 June 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
          Contributed by Ross Smith (address@hidden). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,

Index: session/adodb-session-clob.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/session/adodb-session-clob.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- session/adodb-session-clob.php      18 Mar 2006 16:53:17 -0000      1.4
+++ session/adodb-session-clob.php      22 Jun 2006 09:06:37 -0000      1.5
@@ -2,7 +2,7 @@
 
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.90 8 June 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
          Contributed by Ross Smith (address@hidden). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,

Index: session/adodb-session.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/session/adodb-session.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- session/adodb-session.php   18 Mar 2006 16:53:17 -0000      1.4
+++ session/adodb-session.php   22 Jun 2006 09:06:37 -0000      1.5
@@ -2,7 +2,7 @@
 
 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.90 8 June 2006  (c) 2000-2006 John Lim (jlim#natsoft.com.my). All rights 
reserved.
          Contributed by Ross Smith (address@hidden). 
   Released under both BSD license and Lesser GPL library license.
   Whenever there is any discrepancy between the two licenses,
@@ -26,7 +26,7 @@
 */
 
 if (!defined('_ADODB_LAYER')) {
-       require_once realpath(dirname(__FILE__) . '/../adodb.inc.php');
+       require realpath(dirname(__FILE__) . '/../adodb.inc.php');
 }
 
 if (defined('ADODB_SESSION')) return 1;
@@ -493,6 +493,19 @@
        // public methods
        /////////////////////
 
+       function config($driver, $host, $user, $password, 
$database=false,$options=false)
+       {
+               ADODB_Session::driver($driver);
+               ADODB_Session::host($host);
+               ADODB_Session::user($user);
+               ADODB_Session::password($password);
+               ADODB_Session::database($database);
+               
+               if (isset($options['table'])) 
ADODB_Session::table($options['table']);
+               if (isset($options['clob'])) 
ADODB_Session::table($options['clob']);
+               if (isset($options['field'])) 
ADODB_Session::dataFieldName($options['field']);
+       }
+
        /*!
                Create the connection to the database.
 
@@ -523,7 +536,6 @@
 #              assert('$driver');
 #              assert('$host');
 
-               // cannot use =& below - do not know why...
                $conn =& ADONewConnection($driver);
 
                if ($debug) {
@@ -618,6 +630,10 @@
                If the data has not been modified since the last read(), we do 
not write.
        */
        function write($key, $val) {
+       global $ADODB_SESSION_READONLY;
+       
+               if (!empty($ADODB_SESSION_READONLY)) return;
+               
                $clob                   = ADODB_Session::clob();
                $conn                   =& ADODB_Session::_conn();
                $crc                    = ADODB_Session::_crc();
@@ -646,12 +662,19 @@
                        if ($debug) {
                                echo '<p>Session: Only updating date - crc32 
not changed</p>';
                        }
-                       $sql = "UPDATE $table SET expiry = 
".$conn->Param('0')." WHERE $binary sesskey = ".$conn->Param('1')." AND expiry 
>= ".$conn->Param('2');
-                       $rs =& $conn->Execute($sql,array($expiry,$key,time()));
-                       ADODB_Session::_dumprs($rs);
-                       if ($rs) {
-                               $rs->Close();
+                       
+                       $expirevar = '';
+                       if ($expire_notify) {
+                               $var = reset($expire_notify);
+                               global $$var;
+                               if (isset($$var)) {
+                                       $expirevar = $$var;
                        }
+                       }
+                       
+                       
+                       $sql = "UPDATE $table SET expiry = 
".$conn->Param('0').",expireref=".$conn->Param('1')." WHERE $binary sesskey = 
".$conn->Param('2')." AND expiry >= ".$conn->Param('3');
+                       $rs =& 
$conn->Execute($sql,array($expiry,$expirevar,$key,time()));
                        return true;
                }
                $val = rawurlencode($val);
@@ -673,7 +696,7 @@
                if (!$clob) {   // no lobs, simply use replace()
                        $arr[$data] = $conn->qstr($val);
                        $rs = $conn->Replace($table, $arr, 'sesskey', 
$autoQuote = true);
-                       ADODB_Session::_dumprs($rs);
+                       
                } else {
                        // what value shall we insert/update for lob row?
                        switch ($driver) {
@@ -691,13 +714,13 @@
                                        break;
                        }
                        
+                       $expiryref = $conn->qstr($arr['expireref']);
                        // do we insert or update? => as for sesskey
                        $rs =& $conn->Execute("SELECT COUNT(*) AS cnt FROM 
$table WHERE $binary sesskey = $qkey");
-                       ADODB_Session::_dumprs($rs);
                        if ($rs && reset($rs->fields) > 0) {
-                               $sql = "UPDATE $table SET expiry = $expiry, 
$data = $lob_value WHERE  sesskey = $qkey";
+                               $sql = "UPDATE $table SET expiry = $expiry, 
$data = $lob_value, expireref=$expiryref WHERE  sesskey = $qkey";
                        } else {
-                               $sql = "INSERT INTO $table (expiry, $data, 
sesskey) VALUES ($expiry, $lob_value, $qkey)";
+                               $sql = "INSERT INTO $table (expiry, $data, 
sesskey,expireref) VALUES ($expiry, $lob_value, $qkey,$expiryref)";
                        }
                        if ($rs) {
                                $rs->Close();
@@ -705,12 +728,11 @@
 
                        $err = '';
                        $rs1 =& $conn->Execute($sql);
-                       ADODB_Session::_dumprs($rs1);
                        if (!$rs1) {
                                $err = $conn->ErrorMsg()."\n";
                        }
                        $rs2 =& $conn->UpdateBlob($table, $data, $val, " 
sesskey=$qkey", strtoupper($clob));
-                       ADODB_Session::_dumprs($rs2);
+                       
                        if (!$rs2) {
                                $err .= $conn->ErrorMsg()."\n";
                        }
@@ -901,7 +923,8 @@
 }
 
 ADODB_Session::_init();
-register_shutdown_function('session_write_close');
+if (empty($ADODB_SESSION_READONLY))
+       register_shutdown_function('session_write_close');
 
 // for backwards compatability only
 function adodb_sess_open($save_path, $session_name, $persist = true) {

Index: session/adodb-sessions.mysql.sql
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/session/adodb-sessions.mysql.sql,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- session/adodb-sessions.mysql.sql    18 Mar 2006 16:53:17 -0000      1.4
+++ session/adodb-sessions.mysql.sql    22 Jun 2006 09:06:37 -0000      1.5
@@ -1,4 +1,4 @@
--- $CVSHeader: phpgwapi/inc/adodb/session/adodb-sessions.mysql.sql,v 1.4 
2006/03/18 16:53:17 sigurdne Exp $
+-- $CVSHeader: phpgwapi/inc/adodb/session/adodb-sessions.mysql.sql,v 1.5 
2006/06/22 09:06:37 sigurdne Exp $
 
 CREATE DATABASE /*! IF NOT EXISTS */ adodb_sessions;
 

Index: session/adodb-sessions.oracle.clob.sql
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/session/adodb-sessions.oracle.clob.sql,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- session/adodb-sessions.oracle.clob.sql      18 Mar 2006 16:53:17 -0000      
1.4
+++ session/adodb-sessions.oracle.clob.sql      22 Jun 2006 09:06:37 -0000      
1.5
@@ -1,4 +1,4 @@
--- $CVSHeader: phpgwapi/inc/adodb/session/adodb-sessions.oracle.clob.sql,v 1.4 
2006/03/18 16:53:17 sigurdne Exp $
+-- $CVSHeader: phpgwapi/inc/adodb/session/adodb-sessions.oracle.clob.sql,v 1.5 
2006/06/22 09:06:37 sigurdne Exp $
 
 DROP TABLE adodb_sessions;
 

Index: session/adodb-sessions.oracle.sql
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/session/adodb-sessions.oracle.sql,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- session/adodb-sessions.oracle.sql   18 Mar 2006 16:53:17 -0000      1.4
+++ session/adodb-sessions.oracle.sql   22 Jun 2006 09:06:37 -0000      1.5
@@ -1,4 +1,4 @@
--- $CVSHeader: phpgwapi/inc/adodb/session/adodb-sessions.oracle.sql,v 1.4 
2006/03/18 16:53:17 sigurdne Exp $
+-- $CVSHeader: phpgwapi/inc/adodb/session/adodb-sessions.oracle.sql,v 1.5 
2006/06/22 09:06:37 sigurdne Exp $
 
 DROP TABLE adodb_sessions;
 

Index: session/old/adodb-cryptsession.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/session/old/adodb-cryptsession.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- session/old/adodb-cryptsession.php  18 Mar 2006 16:53:17 -0000      1.2
+++ session/old/adodb-cryptsession.php  22 Jun 2006 09:06:37 -0000      1.3
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.

Index: session/old/adodb-session-clob.php
===================================================================
RCS file: 
/sources/phpgwapi/phpgwapi/inc/adodb/session/old/adodb-session-clob.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- session/old/adodb-session-clob.php  18 Mar 2006 16:53:17 -0000      1.2
+++ session/old/adodb-session-clob.php  22 Jun 2006 09:06:37 -0000      1.3
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  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.

Index: session/old/adodb-session.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/session/old/adodb-session.php,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- session/old/adodb-session.php       18 Mar 2006 16:53:17 -0000      1.2
+++ session/old/adodb-session.php       22 Jun 2006 09:06:37 -0000      1.3
@@ -1,6 +1,6 @@
 <?php
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+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.

Index: tests/benchmark.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/benchmark.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/benchmark.php 18 Mar 2006 16:53:17 -0000      1.4
+++ tests/benchmark.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -8,7 +8,7 @@
 <body>
 <?php 
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.81 3 May 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.

Index: tests/client.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/client.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- tests/client.php    21 Feb 2006 13:47:42 -0000      1.3
+++ tests/client.php    22 Jun 2006 09:06:37 -0000      1.4
@@ -2,7 +2,7 @@
 <body bgcolor=white>
 <?php
 /** 
- * V4.50 6 July 2004  (c) 2001-2002 John Lim (address@hidden). All rights 
reserved.
+ * V4.50 6 July 2004  (c) 2001-2002 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: tests/rr.htm
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/rr.htm,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- tests/rr.htm        18 Mar 2006 16:53:17 -0000      1.2
+++ tests/rr.htm        22 Jun 2006 09:06:37 -0000      1.3
@@ -49,7 +49,7 @@
        </p>
        <table width=100% ><tr><td bgcolor=beige>&nbsp;</td></tr></table>
        </p>
-<h3>SQL Logging enabled</h3><h3>ADODB Version: V4.80 8 Mar 2006  (c) 2000-2006 
John Lim (jlim#natsoft.com.my). All rights reserved. Released BSD & LGPL. Host: 
<i>sherkhan</i> &nbsp; Database: <i></i> &nbsp; PHP: 4.3.8 </h3>Array
+<h3>SQL Logging enabled</h3><h3>ADODB Version: V4.81 3 May 2006  (c) 2000-2006 
John Lim (jlim#natsoft.com.my). All rights reserved. Released BSD & LGPL. Host: 
<i>sherkhan</i> &nbsp; Database: <i></i> &nbsp; PHP: 4.3.8 </h3>Array
 (
     [compat] => 9.2.0.0.0
     [description] => Oracle9i Release 9.2.0.1.0 - Production

Index: tests/test-active-recs2.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/test-active-recs2.php,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- tests/test-active-recs2.php 18 Mar 2006 16:53:17 -0000      1.1
+++ tests/test-active-recs2.php 22 Jun 2006 09:06:37 -0000      1.2
@@ -6,7 +6,7 @@
 
 ###########################
 
-
+$ADODB_ACTIVE_CACHESECS = 36;
 
 $DBMS = @$_GET['db'];
 if ($DBMS == 'mysql') {
@@ -29,10 +29,12 @@
 
 
 
+
 $rec = new ADODB_Active_Record('photos');
 
 $rec = new ADODB_Active_Record('products');
 
+
 adodb_pr($rec->getAttributeNames());
 
 echo "<hr>";
@@ -59,11 +61,14 @@
 
 $rec = new ADODB_Active_record('products');
 $rec->productname = 'John ActiveRec';
-$rec->productid=0;
+$rec->notes = 22;
+#$rec->productid=0;
 $rec->discontinued=1;
 $rec->Save();
 $rec->supplierid=33;
 $rec->Save();
+$rec->discontinued=0;
+$rec->Save();
 $rec->Delete();
 
 echo "<p>Affected Rows after delete=".$db->Affected_Rows()."</p>";

Index: tests/test-datadict.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/test-datadict.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/test-datadict.php     18 Mar 2006 16:53:17 -0000      1.4
+++ tests/test-datadict.php     22 Jun 2006 09:06:37 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 /*
 
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  V4.81 3 May 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.

Index: tests/test-php5.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/test-php5.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/test-php5.php 18 Mar 2006 16:53:17 -0000      1.4
+++ tests/test-php5.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  V4.81 3 May 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.

Index: tests/test.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/test.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/test.php      18 Mar 2006 16:53:17 -0000      1.4
+++ tests/test.php      22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.80 8 Mar 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. 
@@ -747,7 +747,14 @@
                where id=".$db->Param('zid')." and 
created>=".$db->Param('ZDATE')."",
                $array);
        if ($id != 1) Err("Bad bind; id=$id");
-       else echo "<br>Bind date/integer passed";
+       else echo "<br>Bind date/integer 1 passed";
+       
+       $array =array(1,$db->BindDate(time()));
+       $id = $db->GetOne("select id from ADOXYZ 
+               where id=".$db->Param('0')." and created>=".$db->Param('1')."",
+               $array);
+       if ($id != 1) Err("Bad bind; id=$id");
+       else echo "<br>Bind date/integer 2 passed";
        
        $db->debug = false;
        $ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
@@ -1115,6 +1122,13 @@
        else print " Fail<BR>";
        
        $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");
        if ($rs) print ' Multiple, Alan selected: '. 
$rs->GetMenu('menu','Alan',false,true).'<BR>';
        else print " Fail<BR>";
        print '</p><hr />';
@@ -1320,13 +1334,16 @@
        $date = $db->SQLDate('d-m-M-Y-\QQ h:i:s A',$db->DBDate("1974-02-25"));
        $sql = "SELECT $date from ADOXYZ";
        print "<p>Test SQLDate: ".htmlspecialchars($sql)."</p>";
+       $db->debug=1;
        $rs = $db->SelectLimit($sql,1);
        $ts = ADOConnection::UnixDate('1974-02-25');
        $d = date('d-m-M-Y-',$ts).'Q'.(ceil(date('m',$ts)/3.0)).date(' h:i:s 
A',$ts);
        if (!$rs) {
                Err("SQLDate query returned no recordset");
                echo $db->ErrorMsg(),'<br>';
-       } else if ($d != $rs->fields[0]) Err("SQLDate 2 failed expected: 
<br>act:$d <br>sql:".$rs->fields[0]);
+       } else if ($d != reset($rs->fields)) {
+               Err("SQLDate 2 failed expected: <br>act:$d 
<br>sql:".$rs->fields[0].' <br>'.$db->ErrorMsg());
+       }
        
        
        print "<p>Test Filter</p>";
@@ -1497,9 +1514,11 @@
        flush();
        
        if ($db->hasTransactions) {
-               //$db->debug=1;
+               $db->debug=1;
                echo "<p>Testing StartTrans CompleteTrans</p>";
                $db->raiseErrorFn = false;
+               
+               $db->SetTransactionMode('SERIALIZABLE');
                $db->StartTrans();
                $rs = $db->Execute('select * from notable');
                        $db->StartTrans();
@@ -1508,6 +1527,8 @@
                                $db->CommitTrans();
                        $db->CompleteTrans();
                $rez = $db->CompleteTrans();
+               $db->SetTransactionMode('');
+               $db->debug=0;
                if ($rez !== false) {
                        if (is_null($rez)) Err("Error: _transOK not modified");
                        else Err("Error: CompleteTrans (1) should have failed");

Index: tests/test3.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/test3.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/test3.php     18 Mar 2006 16:53:17 -0000      1.4
+++ tests/test3.php     22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /*
-  V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights 
reserved.
+  V4.80 8 Mar 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.

Index: tests/test4.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/test4.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- tests/test4.php     21 Feb 2006 13:47:42 -0000      1.3
+++ tests/test4.php     22 Jun 2006 09:06:37 -0000      1.4
@@ -1,7 +1,7 @@
 <?php
 
 /** 
- * @version V4.50 6 July 2004 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version V4.50 6 July 2004 (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. 

Index: tests/test5.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/test5.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/test5.php     18 Mar 2006 16:53:17 -0000      1.4
+++ tests/test5.php     22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.80 8 Mar 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. 

Index: tests/testcache.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/testcache.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/testcache.php 18 Mar 2006 16:53:17 -0000      1.4
+++ tests/testcache.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -2,7 +2,7 @@
 <body>
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.80 8 Mar 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. 

Index: tests/testdatabases.inc.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/testdatabases.inc.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/testdatabases.inc.php 18 Mar 2006 16:53:17 -0000      1.4
+++ tests/testdatabases.inc.php 22 Jun 2006 09:06:37 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
   
 /*
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.80 8 Mar 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.
@@ -314,17 +314,28 @@
 
 }
 
-ADOLoadCode("db2"); // no longer supported
+ADOLoadCode("odbc_db2"); // no longer supported
 if (!empty($testdb2)) { 
-       $db = ADONewConnection();
+       if (PHP_VERSION>=5.1) {
+               $db = ADONewConnection("db2");
        print "<h1>Connecting $db->databaseType...</h1>";
        
-       $dsn = "db2_sample";
-       $dsn = "driver={IBM db2 odbc 
DRIVER};Database=sample;hostname=localhost;port=50000;protocol=TCPIP; uid=root; 
pwd=natsoft";
-       if ($db->Connect($dsn)) {
-       //      testdb($db,"create table ADOXYZ (id int, firstname varchar(24), 
lastname varchar(24),created date)");
+               #$db->curMode = SQL_CUR_USE_ODBC;
+               #$dsn = "driver={IBM db2 odbc 
DRIVER};Database=test;hostname=localhost;port=50000;protocol=TCPIP; 
uid=natsoft; pwd=guest";
+               if ($db->Connect('localhost','natsoft','guest','test')) {
+                       testdb($db,"create table ADOXYZ (id int, firstname 
varchar(24), lastname varchar(24),created date)");
        } else print "ERROR: DB2 test requires an server setup with odbc data 
source db2_sample".'<BR>'.$db->ErrorMsg();
+       } else { 
+               $db = ADONewConnection("odbc_db2");
+               print "<h1>Connecting $db->databaseType...</h1>";
 
+               $dsn = "db2test";
+               #$db->curMode = SQL_CUR_USE_ODBC;
+               #$dsn = "driver={IBM db2 odbc 
DRIVER};Database=test;hostname=localhost;port=50000;protocol=TCPIP; 
uid=natsoft; pwd=guest";
+               if ($db->Connect($dsn)) {
+                       testdb($db,"create table ADOXYZ (id int, firstname 
varchar(24), lastname varchar(24),created date)");
+               } else print "ERROR: DB2 test requires an server setup with 
odbc data source db2_sample".'<BR>'.$db->ErrorMsg();
+       }
 echo "<hr />";
 flush();
        $dsn = "driver={IBM db2 odbc 
DRIVER};Database=sample;hostname=localhost;port=50000;protocol=TCPIP; uid=root; 
pwd=natsoft";

Index: tests/testmssql.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/testmssql.php,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- tests/testmssql.php 21 Feb 2006 13:47:42 -0000      1.3
+++ tests/testmssql.php 22 Jun 2006 09:06:37 -0000      1.4
@@ -1,7 +1,7 @@
 <?php
 
 /** 
- * @version V4.50 6 July 2004 (c) 2000-2006 John Lim (address@hidden). All 
rights reserved.
+ * @version V4.50 6 July 2004 (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. 

Index: tests/testoci8.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/testoci8.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/testoci8.php  18 Mar 2006 16:53:17 -0000      1.4
+++ tests/testoci8.php  22 Jun 2006 09:06:37 -0000      1.5
@@ -2,7 +2,7 @@
 <body>
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.80 8 Mar 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. 

Index: tests/testoci8cursor.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/testoci8cursor.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/testoci8cursor.php    18 Mar 2006 16:53:17 -0000      1.4
+++ tests/testoci8cursor.php    22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.80 8 Mar 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. 

Index: tests/testpaging.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/testpaging.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/testpaging.php        18 Mar 2006 16:53:17 -0000      1.4
+++ tests/testpaging.php        22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.80 8 Mar 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. 

Index: tests/testpear.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/testpear.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/testpear.php  18 Mar 2006 16:53:17 -0000      1.4
+++ tests/testpear.php  22 Jun 2006 09:06:37 -0000      1.5
@@ -1,6 +1,6 @@
 <?php
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.80 8 Mar 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. 

Index: tests/testsessions.php
===================================================================
RCS file: /sources/phpgwapi/phpgwapi/inc/adodb/tests/testsessions.php,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- tests/testsessions.php      18 Mar 2006 16:53:17 -0000      1.4
+++ tests/testsessions.php      22 Jun 2006 09:06:37 -0000      1.5
@@ -1,7 +1,7 @@
 <?php
 
 /* 
-V4.80 8 Mar 2006  (c) 2000-2006 John Lim (address@hidden). All rights reserved.
+V4.80 8 Mar 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. 

Index: adodb-time.zip
===================================================================
RCS file: adodb-time.zip
diff -N adodb-time.zip
Binary files /tmp/cvs79erwI and /dev/null differ




reply via email to

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