You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							700 lines
						
					
					
						
							44 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							700 lines
						
					
					
						
							44 KiB
						
					
					
				
								<h3>Old Changelog</h3>
							 | 
						|
								<p><b>3.50 19 May 2003</b></p>
							 | 
						|
								<p>Fixed mssql compat with FreeTDS. FreeTDS does not implement mssql_fetch_assoc(). 
							 | 
						|
								<p>Merged back connection and recordset code into adodb.inc.php. 
							 | 
						|
								<p>ADOdb sessions using oracle clobs contributed by achim.gosse#ddd.de. See adodb-session-clob.php. 
							 | 
						|
								<p>Added /s modifier to preg_match everywhere, which ensures that regex does not 
							 | 
						|
								  stop at /n. Thx Pao-Hsi Huang. 
							 | 
						|
								<p>Fixed error in metacolumns() for mssql. 
							 | 
						|
								<p>Added time format support for SQLDate. 
							 | 
						|
								<p>Image => B added to metatype. 
							 | 
						|
								<p>MetaType now checks empty($this->blobSize) instead of empty($this). 
							 | 
						|
								<p>Datadict has beta support for informix, sybase (mapped to mssql), db2 and generic 
							 | 
						|
								  (which is a fudge). 
							 | 
						|
								<p>BlobEncode for postgresql uses pg_escape_bytea, if available. Needed for compat 
							 | 
						|
								  with 7.3. 
							 | 
						|
								<p>Added $ADODB_LANG, to support multiple languages in MetaErrorMsg(). 
							 | 
						|
								<p>Datadict can now parse table definition as declarative text. 
							 | 
						|
								<p>For DataDict, oci8 autoincrement trigger missing semi-colon. Fixed. 
							 | 
						|
								<p>For DataDict, when REPLACE flag enabled, drop sequence in datadict for autoincrement 
							 | 
						|
								  field in postgres and oci8.s 
							 | 
						|
								<p>Postgresql defaults to template1 database if no database defined in connect/pconnect. 
							 | 
						|
								<p>We now clear _resultid in postgresql if query fails. 
							 | 
						|
								<p><b>3.40 19 May 2003</b></p>
							 | 
						|
								<p>Added insert_id for odbc_mssql. 
							 | 
						|
								<p>Modified postgresql UpdateBlobFile() because it did not work in safe mode. 
							 | 
						|
								<p>Now connection object is passed to raiseErrorFn as last parameter. Needed by 
							 | 
						|
								  StartTrans(). 
							 | 
						|
								<p>Added StartTrans() and CompleteTrans(). It is recommended that you do not modify 
							 | 
						|
								  transOff, but use the above functions. 
							 | 
						|
								<p>oci8po now obeys ADODB_ASSOC_CASE settings. 
							 | 
						|
								<p>Added virtualized error codes, using PEAR DB equivalents. Requires you to manually 
							 | 
						|
								  include adodb-error.inc.php yourself, with MetaError() and MetaErrorMsg($errno). 
							 | 
						|
								<p>GetRowAssoc for mysql and pgsql were flawed. Fix by Ross Smith. 
							 | 
						|
								<p>Added to datadict types I1, I2, I4 and I8. Changed datadict type 'T' to map 
							 | 
						|
								  to timestamp instead of datetime for postgresql. 
							 | 
						|
								<p>Error handling in ExecuteSQLArray(), adodb-datadict.inc.php did not work. 
							 | 
						|
								<p>We now auto-quote postgresql connection parameters when building connection 
							 | 
						|
								  string. 
							 | 
						|
								<p>Added session expiry notification. 
							 | 
						|
								<p>We now test with odbc mysql - made some changes to odbc recordset constructor. 
							 | 
						|
								<p>MetaColumns now special cases access and other databases for odbc. 
							 | 
						|
								<p><b>3.31 17 March 2003</b></p>
							 | 
						|
								<p>Added row checking for _fetch in postgres. 
							 | 
						|
								<p>Added Interval type to MetaType for postgres. 
							 | 
						|
								<p>Remapped postgres driver to call postgres7 driver internally. 
							 | 
						|
								<p>Adorecordset_array::getarray() did not return array when nRows >= 0. 
							 | 
						|
								<p>Postgresql: at times, no error message returned by pg_result_error() but error 
							 | 
						|
								  message returned in pg_last_error(). Recoded again. 
							 | 
						|
								<p>Interbase blob's now use chunking for updateblob. 
							 | 
						|
								<p>Move() did not set EOF correctly. Reported by Jorma T. 
							 | 
						|
								<p>We properly support mysql timestamp fields when we are creating mysql tables 
							 | 
						|
								  using the data-dict interface. 
							 | 
						|
								<p>Table regex includes backticks character now. 
							 | 
						|
								<p><b>3.30 3 March 2003</b></p>
							 | 
						|
								<p>Added $ADODB_EXTENSION and $ADODB_COMPAT_FETCH constant. 
							 | 
						|
								<p>Made blank1stItem configurable using syntax "value:text" in GetMenu/GetMenu2. 
							 | 
						|
								  Thx to Gabriel Birke. 
							 | 
						|
								<p>Previously ADOdb differed from the Microsoft standard because it did not define 
							 | 
						|
								  what to set $this->fields when EOF was reached. Now at EOF, ADOdb sets $this->fields 
							 | 
						|
								  to false for all databases, which is consist with Microsoft's implementation. 
							 | 
						|
								  Postgresql and mysql have always worked this way (in 3.11 and earlier). If you 
							 | 
						|
								  are experiencing compatibility problems (and you are not using postgresql nor 
							 | 
						|
								  mysql) on upgrading to 3.30, try setting the global variables $ADODB_COUNTRECS 
							 | 
						|
								  = true (which is the default) and $ADODB_FETCH_COMPAT = true (this is a new 
							 | 
						|
								  global variable). 
							 | 
						|
								<p>We now check both pg_result_error and pg_last_error as sometimes pg_result_error 
							 | 
						|
								  does not display anything. Iman Mayes 
							 | 
						|
								<p> We no longer check for magic quotes gpc in Quote(). 
							 | 
						|
								<p> Misc fixes for table creation in adodb-datadict.inc.php. Thx to iamsure. 
							 | 
						|
								<p> Time calculations use adodb_time library for all negative timestamps due to 
							 | 
						|
								  problems in Red Hat 7.3 or later. Formerly, only did this for Windows. 
							 | 
						|
								<p> In mssqlpo, we now check if $sql in _query is a string before we change || 
							 | 
						|
								  to +. This is to support prepared stmts. 
							 | 
						|
								<p> Move() and MoveLast() internals changed to support to support EOF and $this->fields 
							 | 
						|
								  change. 
							 | 
						|
								<p> Added ADODB_FETCH_BOTH support to mssql. Thx to Angel Fradejas afradejas#mediafusion.es 
							 | 
						|
								<p> We now check if link resource exists before we run mysql_escape_string in 
							 | 
						|
								  qstr(). 
							 | 
						|
								<p> Before we flock in csv code, we check that it is not a http url. 
							 | 
						|
								<p><b>3.20 17 Feb 2003</b></p>
							 | 
						|
								<p>Added new Data Dictionary classes for creating tables and indexes. Warning 
							 | 
						|
								  - this is very much alpha quality code. The API can still change. See adodb/tests/test-datadict.php 
							 | 
						|
								  for more info. 
							 | 
						|
								<p>We now ignore $ADODB_COUNTRECS for mysql, because PHP truncates incomplete 
							 | 
						|
								  recordsets when mysql_unbuffered_query() is called a second time. 
							 | 
						|
								<p>Now postgresql works correctly when $ADODB_COUNTRECS = false. 
							 | 
						|
								<p>Changed _adodb_getcount to properly support SELECT DISTINCT. 
							 | 
						|
								<p>Discovered that $ADODB_COUNTRECS=true has some problems with prepared queries 
							 | 
						|
								  - suspect PHP bug. 
							 | 
						|
								<p>Now GetOne and GetRow run in $ADODB_COUNTRECS=false mode for better performance. 
							 | 
						|
								<p>Added support for mysql_real_escape_string() and pg_escape_string() in qstr(). 
							 | 
						|
								<p>Added an intermediate variable for mysql _fetch() and MoveNext() to store fields, 
							 | 
						|
								  to prevent overwriting field array with boolean when mysql_fetch_array() returns 
							 | 
						|
								  false. 
							 | 
						|
								<p>Made arrays for getinsertsql and getupdatesql case-insensitive. Suggested by 
							 | 
						|
								  Tim Uckun" tim#diligence.com 
							 | 
						|
								<p><b>3.11 11 Feb 2003</b></p>
							 | 
						|
								<p>Added check for ADODB_NEVER_PERSIST constant in PConnect(). If defined, then 
							 | 
						|
								  PConnect() will actually call non-persistent Connect(). 
							 | 
						|
								<p>Modified interbase to properly work with Prepare(). 
							 | 
						|
								<p>Added $this->ibase_timefmt to allow you to change the date and time format. 
							 | 
						|
								<p>Added support for $input_array parameter in CacheFlush(). 
							 | 
						|
								<p>Added experimental support for dbx, which was then removed when i found that 
							 | 
						|
								  it was slower than using native calls. 
							 | 
						|
								<p>Added MetaPrimaryKeys for mssql and ibase/firebird. 
							 | 
						|
								<p>Added new $trim parameter to GetCol and CacheGetCol 
							 | 
						|
								<p>Uses updated adodb-time.inc.php 0.06. 
							 | 
						|
								<p><b>3.10 27 Jan 2003</b> 
							 | 
						|
								<p>Added adodb_date(), adodb_getdate(), adodb_mktime() and adodb-time.inc.php. 
							 | 
						|
								<p>For interbase, added code to handle unlimited number of bind parameters. From 
							 | 
						|
								  Daniel Hasan daniel#hasan.cl. 
							 | 
						|
								<p>Added BlobDecode and UpdateBlob for informix. Thx to Fernando Ortiz. 
							 | 
						|
								<p>Added constant ADODB_WINDOWS. If defined, means that running on Windows. 
							 | 
						|
								<p>Added constant ADODB_PHPVER which stores php version as a hex num. Removed 
							 | 
						|
								  $ADODB_PHPVER variable. 
							 | 
						|
								<p>Felho Bacsi reported a minor white-space regular expression problem in GetInsertSQL. 
							 | 
						|
								<p>Modified ADO to use variant to store _affectedRows 
							 | 
						|
								<p>Changed ibase to use base class Replace(). Modified base class Replace() to 
							 | 
						|
								  support ibase. 
							 | 
						|
								<p>Changed odbc to auto-detect when 0 records returned is wrong due to bad odbc 
							 | 
						|
								  drivers. 
							 | 
						|
								<p>Changed mssql to use datetimeconvert ini setting only when 4.30 or later (does 
							 | 
						|
								  not work in 4.23). 
							 | 
						|
								<p>ExecuteCursor($stmt, $cursorname, $params) now accepts a new $params array 
							 | 
						|
								  of additional bind parameters -- William Lovaton walovaton#yahoo.com.mx. 
							 | 
						|
								<p>Added support for sybase_unbuffered_query if ADODB_COUNTRECS == false. Thx 
							 | 
						|
								  to chuck may. 
							 | 
						|
								<p>Fixed FetchNextObj() bug. Thx to Jorma Tuomainen. 
							 | 
						|
								<p>We now use SCOPE_IDENTITY() instead of @@IDENTITY for mssql - thx to marchesini#eside.it 
							 | 
						|
								<p>Changed postgresql movenext logic to prevent illegal row number from being 
							 | 
						|
								  passed to pg_fetch_array(). 
							 | 
						|
								<p>Postgresql initrs bug found by "Bogdan RIPA" bripa#interakt.ro $f1 accidentally 
							 | 
						|
								  named $f 
							 | 
						|
								<p><b>3.00 6 Jan 2003</b> 
							 | 
						|
								<p>Fixed adodb-pear.inc.php syntax error. 
							 | 
						|
								<p>Improved _adodb_getcount() to use SELECT COUNT(*) FROM ($sql) for languages 
							 | 
						|
								  that accept it. 
							 | 
						|
								<p>Fixed _adodb_getcount() caching error. 
							 | 
						|
								<p>Added sql to retrive table and column info for odbc_mssql. 
							 | 
						|
								<p><strong>2.91 3 Jan 2003</strong> 
							 | 
						|
								<p>Revised PHP version checking to use $ADODB_PHPVER with legal values 0x4000, 
							 | 
						|
								  0x4050, 0x4200, 0x4300. 
							 | 
						|
								<p>Added support for bytea fields and oid blobs in postgres by allowing BlobDecode() 
							 | 
						|
								  to detect and convert non-oid fields. Also added BlobEncode to postgres when 
							 | 
						|
								  you want to encode oid blobs. 
							 | 
						|
								<p>Added blobEncodeType property for connections to inform phpLens what encoding 
							 | 
						|
								  method to use for blobs. 
							 | 
						|
								<p>Added BlobDecode() and BlobEncode() to base ADOConnection class. 
							 | 
						|
								<p>Added umask() to _gencachename() when creating directories. 
							 | 
						|
								<p>Added charPage for ado drivers, so you can set the code page. 
							 | 
						|
								<pre>
							 | 
						|
								$conn->charPage = CP_UTF8;
							 | 
						|
								$conn->Connect($dsn);
							 | 
						|
								</pre>
							 | 
						|
								<p>Modified _seek in mysql to check for num rows=0. 
							 | 
						|
								<p>Added to metatypes new informix types for IDS 9.30. Thx Fernando Ortiz. 
							 | 
						|
								<p>_maxrecordcount returned in CachePageExecute $rsreturn 
							 | 
						|
								<p>Fixed sybase cacheselectlimit( ) problems 
							 | 
						|
								<p>MetaColumns() max_length should use precision for types X and C for ms access. 
							 | 
						|
								  Fixed. 
							 | 
						|
								<p>Speedup of odbc non-SELECT sql statements. 
							 | 
						|
								<p>Added support in MetaColumns for Wide Char types for ODBC. We halve max_length 
							 | 
						|
								  if unicode/wide char. 
							 | 
						|
								<p>Added 'B' to types handled by GetUpdateSQL/GetInsertSQL. 
							 | 
						|
								<p>Fixed warning message in oci8 driver with $persist variable when using PConnect. 
							 | 
						|
								<p><b>2.90 11 Dec 2002</b> 
							 | 
						|
								<p>Mssql and mssqlpo and oci8po now support ADODB_ASSOC_CASE. 
							 | 
						|
								<p>Now MetaType() can accept a field object as the first parameter. 
							 | 
						|
								<p>New $arr = $db->ServerInfo( ) function. Returns $arr['description'] which 
							 | 
						|
								  is the string description, and $arr['version']. 
							 | 
						|
								<p>PostgreSQL and MSSQL speedups for insert/updates. 
							 | 
						|
								<p> Implemented new SetFetchMode() that removes the need to use $ADODB_FETCH_MODE. 
							 | 
						|
								  Each connection has independant fetchMode. 
							 | 
						|
								<p>ADODB_ASSOC_CASE now defaults to 2, use native defaults. This is because we 
							 | 
						|
								  would break backward compat for too many applications otherwise. 
							 | 
						|
								<p>Patched encrypted sessions to use replace() 
							 | 
						|
								<p>The qstr function supports quoting of nulls when escape character is \ 
							 | 
						|
								<p>Rewrote bits and pieces of session code to check for time synch and improve 
							 | 
						|
								  reliability. 
							 | 
						|
								<p>Added property ADOConnection::hasTransactions = true/false; 
							 | 
						|
								<p>Added CreateSequence and DropSequence functions 
							 | 
						|
								<p>Found misplaced MoveNext() in adodb-postgres.inc.php. Fixed. 
							 | 
						|
								<p>Sybase SelectLimit not reliable because 'set rowcount' not cached - fixed. 
							 | 
						|
								<p>Moved ADOConnection to adodb-connection.inc.php and ADORecordSet to adodb-recordset.inc.php. 
							 | 
						|
								  This allows us to use doxygen to generate documentation. Doxygen doesn't like 
							 | 
						|
								  the classes in the main adodb.inc.php file for some mysterious reason. 
							 | 
						|
								<p><b>2.50, 14 Nov 2002</b> 
							 | 
						|
								<p>Added transOff and transCnt properties for disabling (transOff = true) and 
							 | 
						|
								  tracking transaction status (transCnt>0). 
							 | 
						|
								<p>Added inputarray handling into _adodb_pageexecute_all_rows - "Ross Smith" RossSmith#bnw.com. 
							 | 
						|
								<p>Fixed postgresql inconsistencies in date handling. 
							 | 
						|
								<p>Added support for mssql_fetch_assoc. 
							 | 
						|
								<p>Fixed $ADODB_FETCH_MODE bug in odbc MetaTables() and MetaPrimaryKeys(). 
							 | 
						|
								<p>Accidentally declared UnixDate() twice, making adodb incompatible with php 
							 | 
						|
								  4.3.0. Fixed. 
							 | 
						|
								<p>Fixed pager problems with some databases that returned -1 for _currentRow on 
							 | 
						|
								  MoveLast() by switching to MoveNext() in adodb-lib.inc.php. 
							 | 
						|
								<p>Also fixed uninited $discard in adodb-lib.inc.php. 
							 | 
						|
								<p><b>2.43, 25 Oct 2002</b></p>
							 | 
						|
								Added ADODB_ASSOC_CASE constant to better support ibase and odbc field names. 
							 | 
						|
								<p>Added support for NConnect() for oracle OCINLogin. 
							 | 
						|
								<p>Fixed NumCols() bug. 
							 | 
						|
								<p>Changed session handler to use Replace() on write. 
							 | 
						|
								<p>Fixed oci8 SelectLimit aggregate function bug again. 
							 | 
						|
								<p>Rewrote pivoting code. 
							 | 
						|
								<p><b>2.42, 4 Oct 2002</b></p>
							 | 
						|
								<p>Fixed ibase_fetch() problem with nulls. Also interbase now does automatic blob 
							 | 
						|
								  decoding, and is backward compatible. Suggested by Heinz Hombergs heinz#hhombergs.de. 
							 | 
						|
								<p>Fixed postgresql MoveNext() problems when called repeatedly after EOF. Also 
							 | 
						|
								  suggested by Heinz Hombergs. 
							 | 
						|
								<p>PageExecute() does not rewrite queries if SELECT DISTINCT is used. Requested 
							 | 
						|
								  by hans#velum.net 
							 | 
						|
								<p>Added additional fixes to oci8 SelectLimit handling with aggregate functions 
							 | 
						|
								  - thx to Christian Bugge for reporting the problem. 
							 | 
						|
								<p><b>2.41, 2 Oct 2002</b></p>
							 | 
						|
								<p>Fixed ADODB_COUNTRECS bug in odbc. Thx to Joshua Zoshi jzoshi#hotmail.com. 
							 | 
						|
								<p>Increased buffers for adodb-csvlib.inc.php for extremely long sql from 8192 
							 | 
						|
								  to 32000. 
							 | 
						|
								<p>Revised pivottable.inc.php code. Added better support for aggregate fields. 
							 | 
						|
								<p>Fixed mysql text/blob types problem in MetaTypes base class - thx to horacio 
							 | 
						|
								  degiorgi. 
							 | 
						|
								<p>Added SQLDate($fmt,$date) function, which allows an sql date format string 
							 | 
						|
								  to be generated - useful for group by's. 
							 | 
						|
								<p>Fixed bug in oci8 SelectLimit when offset>100. 
							 | 
						|
								<p><b>2.40 4 Sept 2002</b></p>
							 | 
						|
								<p>Added new NLS_DATE_FORMAT property to oci8. Suggested by Laurent NAVARRO ln#altidev.com 
							 | 
						|
								<p>Now use bind parameters in oci8 selectlimit for better performance. 
							 | 
						|
								<p>Fixed interbase replaceQuote for dialect != 1. Thx to "BEGUIN Pierre-Henri 
							 | 
						|
								  - INFOCOB" phb#infocob.com. 
							 | 
						|
								<p>Added white-space check to QA. 
							 | 
						|
								<p>Changed unixtimestamp to support fractional seconds (we always round down/floor 
							 | 
						|
								  the seconds). Thanks to beezly#beezly.org.uk. 
							 | 
						|
								<p>Now you can set the trigger_error type your own user-defined type in adodb-errorhandler.inc.php. 
							 | 
						|
								  Suggested by Claudio Bustos clbustos#entelchile.net. 
							 | 
						|
								<p>Added recordset filters with rsfilter.inc.php. 
							 | 
						|
								<p>$conn->_rs2rs does not create a new recordset when it detects it is of type 
							 | 
						|
								  array. Some trickery there as there seems to be a bug in Zend Engine 
							 | 
						|
								<p>Added render_pagelinks to adodb-pager.inc.php. Code by "Pablo Costa" pablo#cbsp.com.br. 
							 | 
						|
								<p>MetaType() speedup in adodb.inc.php by using hashing instead of switch. Best 
							 | 
						|
								  performance if constant arrays are supported, as they are in PHP5. 
							 | 
						|
								<p>adodb-session.php now updates only the expiry date if the crc32 check indicates 
							 | 
						|
								  that the data has not been modified. 
							 | 
						|
								<p><b>2.31 20 Aug 2002</b></p>
							 | 
						|
								<p>Made changes to pivottable.inc.php due to daniel lucuzaeu's suggestions (we sum the pivottable column if desired).
							 | 
						|
								<p>Fixed ErrorNo() in postgres so it does not depend on _errorMsg property.
							 | 
						|
								<p>Robert Tuttle added support for oracle cursors. See ExecuteCursor().
							 | 
						|
								<p>Fixed Replace() so it works with mysql when updating record where data has not changed. Reported by
							 | 
						|
								Cal Evans (cal#calevans.com).
							 | 
						|
								<p><b>2.30 1 Aug 2002</b></p>
							 | 
						|
								<p>Added pivottable.inc.php. Thanks to daniel.lucazeau#ajornet.com for the original 
							 | 
						|
								  concept.
							 | 
						|
								<p>Added ADOConnection::outp($msg,$newline) to output error and debugging messages. Now 
							 | 
						|
								you can override this using the ADODB_OUTP constant and use your own output handler.
							 | 
						|
								<p>Changed == to === for 'null' comparison. Reported by ericquil#yahoo.com 
							 | 
						|
								<p>Fixed mssql SelectLimit( ) bug when distinct used.
							 | 
						|
								<p><b>2.30 1 Aug 2002</b></p>
							 | 
						|
								<p>New GetCol() and CacheGetCol() from ross#bnw.com that returns the first field as a 1 dim array.
							 | 
						|
								<p>We have an empty recordset, but RecordCount() could return -1. Fixed. Reported by  "Jonathan Polansky" jonathan#polansky.com.
							 | 
						|
								<p>We now check for session variable changes using strlen($sessval).crc32($sessval). 
							 | 
						|
								Formerly we only used crc32().
							 | 
						|
								<p>Informix SelectLimit() problem with $ADODB_COUNTRECS fixed.
							 | 
						|
								<p>Fixed informix SELECT FIRST x DISTINCT, and not SELECT DISTINCT FIRST x - reported by F Riosa
							 | 
						|
								<p>Now default adodb error handlers ignores error if @ used.
							 | 
						|
								<p>If you set $conn->autoRollback=true, we auto-rollback persistent connections for odbc, mysql, oci8, mssql. 
							 | 
						|
								Default for autoRollback is false. No need to do so for postgres. 
							 | 
						|
								As interbase requires a transaction id (what a flawed api), we don't do it for interbase.
							 | 
						|
								<p>Changed PageExecute() to use non-greedy preg_match when searching for "FROM" keyword.
							 | 
						|
								<p><b>2.20 9 July 2002</b></p>
							 | 
						|
								<p>Added CacheGetOne($secs2cache,$sql), CacheGetRow($secs2cache,$sql), CacheGetAll($secs2cache,$sql).
							 | 
						|
								<p>Added $conn->OffsetDate($dayFraction,$date=false) to generate sql that calcs 
							 | 
						|
								  date offsets. Useful for scheduling appointments.
							 | 
						|
								<p>Added connection properties: leftOuter, rightOuter that hold left and right 
							 | 
						|
								  outer join operators.
							 | 
						|
								<p>Added connection property: ansiOuter to indicate whether ansi outer joins supported.
							 | 
						|
								<p>New driver <i>mssqlpo</i>, the portable mssql driver, which converts string 
							 | 
						|
								  concat operator from || to +.
							 | 
						|
								<p>Fixed ms access bug - SelectLimit() did not support ties - fixed.
							 | 
						|
								<p>Karsten Kraus (Karsten.Kraus#web.de), contributed error-handling code to ADONewConnection. 
							 | 
						|
								  Unfortunately due to backward compat problems, had to rollback most of the changes.
							 | 
						|
								<p>Added new parameter to GetAssoc() to allow returning an array of key-value pairs, 
							 | 
						|
								ignoring any additional columns in the recordset. Off by default.
							 | 
						|
								<p>Corrected mssql $conn->sysDate to return only date using convert().
							 | 
						|
								<p>CacheExecute() improved debugging output.
							 | 
						|
								<p>Changed rs2html() so newlines are converted to BR tags. Also optimized rs2html() based
							 | 
						|
								on feedback by "Jerry Workman" jerry#mtncad.com.
							 | 
						|
								<p>Added support for Replace() with Interbase, using DELETE and INSERT.
							 | 
						|
								<p>Some minor optimizations (mostly removing & references when passing arrays).
							 | 
						|
								<p>Changed  GenID() to allows id's larger than the size of an integer.
							 | 
						|
								<p>Added force_session property to oci8 for better updateblob() support.
							 | 
						|
								<p>Fixed PageExecute() which did not work properly with sql containing GROUP BY.
							 | 
						|
								<p><b>2.12 12 June 2002</b></p>
							 | 
						|
								<p>Added toexport.inc.php to export recordsets in CSV and tab-delimited format.
							 | 
						|
								<p>CachePageExecute() does not work - fixed - thx John Huong.
							 | 
						|
								<p>Interbase aliases not set properly in FetchField() - fixed. Thx Stefan Goethals.
							 | 
						|
								<p>Added cache property to adodb pager class. The number of secs to cache recordsets.
							 | 
						|
								<p>SQL rewriting bug in pageexecute() due to skipping of newlines due to missing /s modifier. Fixed.
							 | 
						|
								<p>Max size of cached recordset due to a bug was 256000 bytes. Fixed.
							 | 
						|
								<p>Speedup of 1st invocation of CacheExecute() by tuning code.
							 | 
						|
								<p>We compare $rewritesql with $sql in pageexecute code in case of rewrite failure.
							 | 
						|
								<p><b>2.11 7 June 2002</b></p>
							 | 
						|
								<p>Fixed PageExecute() rewrite sql problem - COUNT(*) and ORDER BY don't go together with
							 | 
						|
									mssql, access and postgres. Thx to Alexander Zhukov alex#unipack.ru
							 | 
						|
								<p>DB2 support for CHARACTER type added - thx John Huong huongch#bigfoot.com
							 | 
						|
								<p>For ado, $argProvider not properly checked. Fixed - kalimero#ngi.it
							 | 
						|
								<p>Added $conn->Replace() function for update with automatic insert if the record does not exist. 
							 | 
						|
									Supported by all databases except interbase.
							 | 
						|
								<p><b>2.10 4 June 2002</b></p>
							 | 
						|
								<p>Added uniqueSort property to indicate mssql ORDER BY cols must be unique.
							 | 
						|
								<p>Optimized session handler by crc32 the data. We only write if session data has changed.
							 | 
						|
								<p>adodb_sess_read in adodb-session.php now returns ''correctly - thanks to Jorma Tuomainen, webmaster#wizactive.com
							 | 
						|
								<p>Mssql driver did not throw EXECUTE errors correctly because ErrorMsg() and ErrorNo() called in wrong order. 
							 | 
						|
								Pointed out by Alexios Fakos. Fixed.
							 | 
						|
								<p>Changed ado to use client cursors. This fixes BeginTran() problems with ado.
							 | 
						|
								<p>Added handling of timestamp type in ado.
							 | 
						|
								<p>Added to ado_mssql support for insert_id() and affected_rows().
							 | 
						|
								<p>Added support for mssql.datetimeconvert=0, available since php 4.2.0.
							 | 
						|
								<p>Made UnixDate() less strict, so that the time is ignored if present.
							 | 
						|
								<p>Changed quote() so that it checks for magic_quotes_gpc.
							 | 
						|
								<p>Changed maxblobsize for odbc to default to 64000.
							 | 
						|
								<p><b>2.00 13 May 2002</b></p>
							 | 
						|
								<p>Added drivers <i>informix72</i> for pre-7.3 versions, and <i>oci805</i> for 
							 | 
						|
								  oracle 8.0.5, and postgres64 for postgresql 6.4 and earlier. The postgres and postgres7 drivers
							 | 
						|
								  are now identical.
							 | 
						|
								<p>Interbase now partially supports ADODB_FETCH_BOTH, by defaulting to ASSOC mode.
							 | 
						|
								<p>Proper support for blobs in mssql. Also revised blob support code 
							 | 
						|
								is base class. Now UpdateBlobFile() calls UpdateBlob() for consistency.
							 | 
						|
								<p>Added support for changed odbc_fetch_into api in php 4.2.0 
							 | 
						|
								with $conn->_has_stupid_odbc_fetch_api_change.
							 | 
						|
								<p>Fixed spelling of tablock locking hint in GenID( ) for mssql. 
							 | 
						|
								<p>Added RowLock( ) to several databases, including oci8, informix, sybase, etc. 
							 | 
						|
								  Fixed where error in mssql RowLock().
							 | 
						|
								<p>Added sysDate and sysTimeStamp properties to most database drivers. These are the sql
							 | 
						|
								functions/constants for that database that return the current date and current timestamp, and 
							 | 
						|
								are useful for portable inserts and updates.
							 | 
						|
								<p>Support for RecordCount() caused date handling in sybase and mssql to break. 
							 | 
						|
								Fixed, thanks to Toni Tunkkari, by creating derived classes for ADORecordSet_array for
							 | 
						|
								both databases. Generalized using arrayClass property. Also to support RecordCount(), 
							 | 
						|
								changed metatype handling for ado drivers. Now the type returned in FetchField 
							 | 
						|
								  is no longer a number, but the 1-char data type returned by MetaType.
							 | 
						|
								  At the same time, fixed a lot of date handling. Now mssql support dmy and mdy date formats. 
							 | 
						|
								Also speedups in sybase and mssql with preg_match and ^ in date/timestamp handling.
							 | 
						|
								Added support in sybase and mssql for 24 hour clock in timestamps (no AM/PM).
							 | 
						|
								<p>Extensive revisions to informix driver - thanks to Samuel CARRIERE samuel_carriere#hotmail.com 
							 | 
						|
								<p>Added $ok parameter to CommitTrans($ok) for easy rollbacks.
							 | 
						|
								<p>Fixed odbc MetaColumns and MetaTables to save and restore $ADODB_FETCH_MODE.
							 | 
						|
								<p>Some odbc drivers did not call the base connection class constructor. Fixed.
							 | 
						|
								<p>Fixed regex for GetUpdateSQL() and GetInsertSQL() to support more legal character combinations.
							 | 
						|
								
							 | 
						|
								<p><b>1.99 21 April 2002</b></p>
							 | 
						|
								<p>Added emulated RecordCount() to all database drivers if $ADODB_COUNTRECS = true 
							 | 
						|
								  (which it is by default). Inspired by Cristiano Duarte (cunha17#uol.com.br). 
							 | 
						|
								<p>Unified stored procedure support for mssql and oci8. Parameter() and PrepareSP() 
							 | 
						|
								  functions implemented. 
							 | 
						|
								<p>Added support for SELECT FIRST in informix, modified hasTop property to support 
							 | 
						|
								  this. 
							 | 
						|
								<p>Changed csv driver to handle updates/deletes/inserts properly (when Execute() returns true).
							 | 
						|
								Bind params also work now, and raiseErrorFn with csv driver. Added csv driver to QA process. 
							 | 
						|
								<p>Better error checking in oci8 UpdateBlob() and UpdateBlobFile().
							 | 
						|
								<p>Added TIME type to MySQL - patch by Manfred h9125297#zechine.wu-wien.ac.at
							 | 
						|
								<p>Prepare/Execute implemented for Interbase/Firebird 
							 | 
						|
								<p>Changed some regular expressions to be anchored by /^ $/ for speed.
							 | 
						|
								<p>Added UnixTimeStamp() and UnixDate() to ADOConnection(). Now these functions 
							 | 
						|
								  are in both ADOConnection and ADORecordSet classes.
							 | 
						|
								<p>Empty recordsets were not cached - fixed.
							 | 
						|
								<p>Thanks to Gaetano Giunta (g.giunta#libero.it) for the oci8 code review. We 
							 | 
						|
								  didn't agree on everything, but i hoped we agreed to disagree! 
							 | 
						|
								<p><b>1.90 6 April 2002</b></p>
							 | 
						|
								<p>Now all database drivers support fetch modes ADODB_FETCH_NUM and ADODB_FETCH_ASSOC, though
							 | 
						|
									still not fully tested. Eg. Frontbase, Sybase, Informix.
							 | 
						|
								<p>NextRecordSet() support for mssql. Contributed by "Sven Axelsson" sven.axelsson#bokochwebb.se
							 | 
						|
								<p>Added blob support for SQL Anywhere. Contributed by Wade Johnson wade#wadejohnson.de
							 | 
						|
								<p>Fixed some security loopholes in server.php. Server.php also supports fetch mode.
							 | 
						|
								<p>Generalized GenID() to support odbc and mssql drivers. Mssql no longer generates GUID's.
							 | 
						|
								<p>Experimental RowLock($table,$where) for mssql.
							 | 
						|
								<p>Properly implemented Prepare() in oci8 and ODBC.
							 | 
						|
								<p>Added Bind() support to oci8 to support Prepare().
							 | 
						|
								<p>Improved error handler. Catches CacheExecute() and GenID() errors now.
							 | 
						|
								<p>Now if you are running php from the command line, debugging messages do not output html formating.
							 | 
						|
								Not 100% complete, but getting there.
							 | 
						|
								<p><b>1.81 22 March 2002</b></p>
							 | 
						|
								<p>Restored default $ADODB_FETCH_MODE = ADODB_FETCH_DEFAULT for backward compatibility.
							 | 
						|
								<p>SelectLimit for oci8 improved - Our FIRST_ROWS optimization now does not overwrite existing hint.
							 | 
						|
								<p>New Sybase SQL Anywhere driver. Contributed by Wade Johnson wade#wadejohnson.de
							 | 
						|
								<p><b>1.80 15 March 2002</b></p>
							 | 
						|
								<p>Redesigned directory structure of ADOdb files. Added new driver directory where
							 | 
						|
								all database drivers reside.
							 | 
						|
								<p>Changed caching algorithm to create subdirectories. Now we scale better.
							 | 
						|
								<p>Informix driver now supports insert_id(). Contribution by "Andrea Pinnisi" pinnisi#sysnet.it
							 | 
						|
								<p>Added experimental ISO date and FetchField support for informix.
							 | 
						|
								<p>Fixed a quoting bug in Execute() with bind parameters, causing problems with blobs.
							 | 
						|
								<p>Mssql driver speedup by 10-15%.
							 | 
						|
								<p>Now in CacheExecute($secs2cache,$sql,...), $secs2cache is optional. If missing, it will
							 | 
						|
								take the value defined in $connection->cacheSecs (default is 3600 seconds). Note that
							 | 
						|
								CacheSelectLimit(), the secs2cache is still compulsory - sigh.
							 | 
						|
								<p>Sybase SQL Anywhere driver (using ODBC) contributed by Wade Johnson wade#wadejohnson.de
							 | 
						|
								<p><b>1.72 8 March 2002</b></p>
							 | 
						|
								<p>Added @ when returning Fields() to prevent spurious error - "Michael William Miller" mille562#pilot.msu.edu
							 | 
						|
								<p>MetaDatabases() for postgres contributed by Phil pamelant#nerim.net
							 | 
						|
								 <p>Mitchell T. Young (mitch#youngfamily.org) contributed informix driver.
							 | 
						|
								 <p>Fixed rs2html() problem. I cannot reproduce, so probably a problem with pre PHP 4.1.0 versions,
							 | 
						|
								  when supporting new ADODB_FETCH_MODEs.
							 | 
						|
								 <p>Mattia Rossi (mattia#technologist.com) contributed BlobDecode() and UpdateBlobFile() for postgresql
							 | 
						|
								 using the postgres specific pg_lo_import()/pg_lo_open() - i don't use them but hopefully others will
							 | 
						|
								 find this useful. See <a href="http://phplens.com/lens/lensforum/msgs.php?id=1262">this posting</a>
							 | 
						|
								 for an example of usage.
							 | 
						|
								 <p>Added UpdateBlobFile() for uploading files to a database.
							 | 
						|
								 <p>Made UpdateBlob() compatible with oci8po driver.
							 | 
						|
								 <p>Added noNullStrings support to oci8 driver. Oracle changes all ' ' strings to nulls,
							 | 
						|
								  so you need to set strings to ' ' to prevent the nullifying of strings. $conn->noNullStrings = true;
							 | 
						|
								  will do this for you automatically. This is useful when you define a char column as NOT NULL.
							 | 
						|
								  <p>Fixed UnixTimeStamp() bug - wasn't setting minutes and seconds properly. Patch from Agusti Fita i Borrell agusti#anglatecnic.com.
							 | 
						|
								  <p>Toni Tunkkari added patch for sybase dates. Problem with spaces in day part of date fixed.
							 | 
						|
								 <p><b>1.71 18 Jan 2002</b></p>
							 | 
						|
								 <p>Sequence start id support. Now $conn->Gen_ID('seqname', 50) to start sequence from 50.
							 | 
						|
								 <p>CSV driver fix for selectlimit, from Andreas - akaiser#vocote.de.
							 | 
						|
								<P>Gam3r spotted that a global variable was undefined in the session handler. 
							 | 
						|
								<p>Mssql date regex had error. Fixed - reported by Minh Hoang vb_user#yahoo.com.
							 | 
						|
								<p>DBTimeStamp() and DBDate() now accept iso dates and unix timestamps. This means
							 | 
						|
								that the PostgreSQL handling of dates in GetInsertSQL() and GetUpdateSQL() can
							 | 
						|
								be removed. Also if these functions are passed '' or null or false, we return a SQL null.
							 | 
						|
								<p>GetInsertSQL() and GetUpdateSQL() now accept a new parameter, $magicq to 
							 | 
						|
								indicate whether quotes should be inserted based on magic quote settings - suggested by
							 | 
						|
								dj#4ict.com.
							 | 
						|
								<p>Reformated docs slightly based on suggestions by Chris Small.
							 | 
						|
								 <p><b>1.65 28 Dec 2001</b></p>
							 | 
						|
								 <p>Fixed borland_ibase class naming bug.
							 | 
						|
								 <p>Now instead of using $rs->fields[0] internally, we use reset($rs->fields) so 
							 | 
						|
								 that we are compatible with ADODB_FETCH_ASSOC mode. Reported by Nico S.
							 | 
						|
								 <p>Changed recordset constructor and _initrs() for oci8 so that it returns the field definitions even
							 | 
						|
								 if no rows in the recordset. Reported by Rick Hickerson (rhickers#mv.mv.com).
							 | 
						|
								 <p>Improved support for postgresql in GetInsertSQL and GetUpdateSQL by
							 | 
						|
								  "mike" mike#partner2partner.com  and "Ryan Bailey" rebel#windriders.com
							 | 
						|
								 <p><b>1.64 20 Dec 2001</b></p>
							 | 
						|
								<p>Danny Milosavljevic <danny.milo#gmx.net> added some patches for MySQL error handling
							 | 
						|
								and displaying default values.
							 | 
						|
								<p>Fixed some ADODB_FETCH_BOTH inconsistencies in odbc and interbase.
							 | 
						|
								<p>Added more tests to test suite to cover ADODB_FETCH_* and ADODB_ERROR_HANDLER.
							 | 
						|
								<p>Added firebird (ibase) driver
							 | 
						|
								<p>Added borland_ibase driver for interbase 6.5
							 | 
						|
								<p><b>1.63 13 Dec 2001</b></p>
							 | 
						|
								Absolute to the adodb-lib.inc.php file not set properly. Fixed.<p>
							 | 
						|
								
							 | 
						|
								<p><b>1.62 11 Dec 2001</b></p>
							 | 
						|
								<p>Major speedup of ADOdb for low-end web sites by reducing the php code loading and compiling
							 | 
						|
								cycle. We conditionally compile not so common functions. 
							 | 
						|
								Moved csv code to adodb-csvlib.inc.php to reduce adodb.inc.php parsing. This file
							 | 
						|
								is loaded only when the csv/proxy driver is used, or CacheExecute() is run.
							 | 
						|
								Also moved PageExecute(), GetSelectSQL() and GetUpdateSQL() core code to adodb-lib.inc.php.
							 | 
						|
								This reduced the 70K main adodb.inc.php file to 55K, and since at least 20K of the file
							 | 
						|
								is comments, we have reduced 50K of code in adodb.inc.php to 35K. There
							 | 
						|
								 should be 35% reduction in memory and thus 35% speedup in compiling the php code for the
							 | 
						|
								main adodb.inc.php file.
							 | 
						|
								<p>Highly tuned SelectLimit() for oci8 for massive speed improvements on large files. 
							 | 
						|
								Selecting 20 rows starting from the 20,000th row of a table is now 7 times faster. 
							 | 
						|
								Thx to Tomas V V Cox.
							 | 
						|
								<p>Allow . and # in table definitions in GetInsertSQL and GetUpdateSQL.
							 | 
						|
								 See ADODB_TABLE_REGEX constant. Thx to Ari Kuorikoski.
							 | 
						|
								<p>Added ADODB_PREFETCH_ROWS constant, defaulting to 10. This determines the number
							 | 
						|
								of records to prefetch in a SELECT statement. Only used by oci8.</p>
							 | 
						|
								<p>Added high portability Oracle class called oci8po. This uses ? for bind variables, and 
							 | 
						|
								lower cases column names.</p>
							 | 
						|
								<p>Now all database drivers support $ADODB_FETCH_MODE, including interbase, ado, and odbc:
							 | 
						|
								ADODB_FETCH_NUM and ADODB_FETCH_ASSOC. ADODB_FETCH_BOTH is not fully implemented for all 
							 | 
						|
								database drivers.
							 | 
						|
								<p><b>1.61 Nov 2001</b></p>
							 | 
						|
								<p>Added PO_RecordCount() and PO_Insert_ID(). PO stands for portable. Pablo Roca 
							 | 
						|
								  [pabloroca#mvps.org]</p>
							 | 
						|
								<p>GenID now returns 0 if not available. Safer is that you should check $conn->hasGenID 
							 | 
						|
								  for availability.</p>
							 | 
						|
								<p>M'soft ADO we now correctly close recordset in _close() peterd#telephonetics.co.uk</p>
							 | 
						|
								<p>MSSQL now supports GenID(). It generates a 16-byte GUID from mssql newid() 
							 | 
						|
								  function.</p>
							 | 
						|
								<p>Changed ereg_replace to preg_replace in SelectLimit. This is a fix for mssql. 
							 | 
						|
								  Ereg doesn't support t or n! Reported by marino Carlos xaplo#postnuke-espanol.org</p>
							 | 
						|
								<p>Added $recordset->connection. This is the ADOConnection object for the recordset. 
							 | 
						|
								Works with cached and normal recordsets. Surprisingly, this had no affect on performance!</p>
							 | 
						|
								<p><b>1.54 15 Nov 2001</b></p>
							 | 
						|
								Fixed some more bugs in PageExecute().  I am getting sick of bug in this and will have to 
							 | 
						|
								reconsider my QA here. The main issue is that I don't use PageExecute() and 
							 | 
						|
								to check whether it is working requires a visual inspection of the html generated currently.
							 | 
						|
								It is possible to write a test script but it would be quite complicated :(
							 | 
						|
								<p> More speedups of SelectLimit() for DB2, Oci8, access, vfp, mssql.
							 | 
						|
								<p>
							 | 
						|
								
							 | 
						|
								<p><b>1.53 7 Nov 2001</b></p>
							 | 
						|
								Added support for ADODB_FETCH_ASSOC for ado and odbc drivers.<p>
							 | 
						|
								Tuned GetRowAssoc(false) in postgresql and mysql.<p>
							 | 
						|
								Stephen Van Dyke contributed ADOdb icon, accepted with some minor mods.<p>
							 | 
						|
								Enabled Affected_Rows() for postgresql<p>
							 | 
						|
								Speedup for Concat() using implode() - Benjamin Curtis ben_curtis#yahoo.com<p>
							 | 
						|
								Fixed some more bugs in PageExecute() to prevent infinite loops<p>
							 | 
						|
								<p><b>1.52 5 Nov 2001</b></p>
							 | 
						|
								Spelling error in CacheExecute() caused it to fail. $ql should be $sql in line 625!<p>
							 | 
						|
								Added fixes for parsing [ and ] in GetUpdateSQL().
							 | 
						|
								<p><b>1.51 5 Nov 2001</b></p>
							 | 
						|
								<p>Oci8 SelectLimit() speedup by using OCIFetch().
							 | 
						|
								<p>Oci8 was mistakenly reporting errors when $db->debug = true.
							 | 
						|
								<p>If a connection failed with ODBC, it was not correctly reported - fixed.
							 | 
						|
								<p>_connectionID was inited to -1, changed to false.
							 | 
						|
								<p>Added $rs->FetchRow(), to simplify API, ala PEAR DB
							 | 
						|
								<p>Added PEAR DB compat mode, which is still faster than PEAR! See adodb-pear.inc.php.
							 | 
						|
								<p>Removed postgres pconnect debugging statement.
							 | 
						|
								<p><b>1.50 31 Oct 2001</b></p>
							 | 
						|
								<p>ADOdbConnection renamed to ADOConnection, and ADOdbFieldObject to ADOFieldObject.
							 | 
						|
								<p>PageExecute() now checks for empty $rs correctly, and the errors in the docs on this subject have been fixed.
							 | 
						|
								<p>odbc_error() does not return 6 digit error correctly at times. Implemented workaround.
							 | 
						|
								<p>Added ADORecordSet_empty class. This will speedup INSERTS/DELETES/UPDATES because the return
							 | 
						|
								object created is much smaller.
							 | 
						|
								<p>Added Prepare() to odbc, and oci8 (but doesn't work properly for oci8 still).
							 | 
						|
								<p>Made pgsql a synonym for postgre7, and changed SELECT LIMIT to use OFFSET for compat with 
							 | 
						|
								postgres 7.2.
							 | 
						|
								<p>Revised adodb-cryptsession.php thanks to Ari.
							 | 
						|
								<p>Set resources to false on _close, to force freeing of resources.
							 | 
						|
								<p>Added adodb-errorhandler.inc.php, adodb-errorpear.inc.php and raiseErrorFn on Freek's urging.
							 | 
						|
								<p>GetRowAssoc($toUpper=true): $toUpper added as default.
							 | 
						|
								<p>Errors when connecting to a database were not captured formerly. Now we do it correctly.
							 | 
						|
								<p><b>1.40 19 September 2001</b></p>
							 | 
						|
								<p>PageExecute() to implement page scrolling added. Code and idea by Iván Oliva.</p>
							 | 
						|
								<p>Some minor postgresql fixes.</p>
							 | 
						|
								<p>Added sequence support using GenID() for postgresql, oci8, mysql, interbase.</p>
							 | 
						|
								<p>Added UpdateBlob support for interbase (untested).</p>
							 | 
						|
								<p>Added encrypted sessions (see adodb-cryptsession.php). By Ari Kuorikoski <kuoriari#finebyte.com></p>
							 | 
						|
								<p><b>1.31 21 August 2001</b></p>
							 | 
						|
								<p>Many bug fixes thanks to "GaM3R (Cameron)" <gamr#outworld.cx>. Some session changes due to Gam3r.
							 | 
						|
								<p>Fixed qstr() to quote  also.
							 | 
						|
								<p>rs2html() now pretty printed.
							 | 
						|
								<p>Jonathan Younger jyounger#unilab.com contributed the great idea GetUpdateSQL() and GetInsertSQL() which
							 | 
						|
								generates SQL to update and insert into a table from a recordset. Modify the recordset fields
							 | 
						|
								array, then can this function to generate the SQL (the SQL is not executed).
							 | 
						|
								<p>"Nicola Fankhauser" <nicola.fankhauser#couniq.com> found some bugs in date handling for mssql.</p>
							 | 
						|
								<p>Added minimal Oracle support for LOBs. Still under development.</p>
							 | 
						|
								Added $ADODB_FETCH_MODE so you can control whether recordsets return arrays which are
							 | 
						|
								numeric, associative or both. This is a global variable you set. Currently only MySQL, Oci8, Postgres
							 | 
						|
								drivers support this.
							 | 
						|
								<p>PostgreSQL properly closes recordsets now. Reported by several people.
							 | 
						|
								<p>
							 | 
						|
								Added UpdateBlob() for Oracle. A hack to make it easier to save blobs.
							 | 
						|
								<p>
							 | 
						|
								Oracle timestamps did not display properly. Fixed.
							 | 
						|
								<p><b>1.20 6 June 2001</b></p>
							 | 
						|
								<p>Now Oracle can connect using tnsnames.ora or server and service name</p>
							 | 
						|
								<p>Extensive Oci8 speed optimizations. 
							 | 
						|
								Oci8 code revised to support variable binding, and /*+ FIRST_ROWS */ hint.</p>
							 | 
						|
								<p>Worked around some 4.0.6 bugs in odbc_fetch_into().</p>
							 | 
						|
								<p>Paolo S. Asioli paolo.asioli#libero.it suggested GetRowAssoc().</p>
							 | 
						|
								<p>Escape quotes for oracle wrongly set to '. Now '' is used.</p>
							 | 
						|
								<p>Variable binding now works in ODBC also.</p>
							 | 
						|
								<p>Jumped to version 1.20 because I don't like 13 :-)</p>
							 | 
						|
								<p><b>1.12 6 June 2001</b></p>
							 | 
						|
								<p>Changed $ADODB_DIR to ADODB_DIR constant to plug a security loophole.</p>
							 | 
						|
								<p>Changed _close() to close persistent connections also. Prevents connection leaks.</p>
							 | 
						|
								<p>Major revision of oracle and oci8 drivers. 
							 | 
						|
								Added OCI_RETURN_NULLS and OCI_RETURN_LOBS to OCIFetchInto(). BLOB, CLOB and VARCHAR2 recognition
							 | 
						|
								in MetaType() improved. MetaColumns() returns columns in correct sort order.</p>
							 | 
						|
								<p>Interbase timestamp input format was wrong. Fixed.</p>
							 | 
						|
								<p><b>1.11 20 May 2001</b></p>
							 | 
						|
								<p>Improved file locking for Windows.</p>
							 | 
						|
								<p>Probabilistic flushing of cache to avoid avalanche updates when cache timeouts.</p>
							 | 
						|
								<p>Cached recordset timestamp not saved in some scenarios. Fixed.</p>
							 | 
						|
								<p><b>1.10 19 May 2001</b></p>
							 | 
						|
								<p>Added caching. CacheExecute() and CacheSelectLimit().
							 | 
						|
								<p>Added csv driver. See <a href="http://php.weblogs.com/adodb_csv">http://php.weblogs.com/ADODB_csv</a>. 
							 | 
						|
								<p>Fixed SelectLimit(), SELECT TOP not working under certain circumstances.
							 | 
						|
								<p>Added better Frontbase support of MetaTypes() by Frank M. Kromann.
							 | 
						|
								<p><b>1.01 24 April 2001</b></p>
							 | 
						|
								<p>Fixed SelectLimit bug.  not quoted properly.
							 | 
						|
								<p>SelectLimit: SELECT TOP -1 * FROM TABLE not support by Microsoft. Fixed.</p>
							 | 
						|
								<p>GetMenu improved by glen.davies#cce.ac.nz to support multiple hilited items<p>
							 | 
						|
								<p>FetchNextObject() did not work with only 1 record returned. Fixed bug reported by $tim#orotech.net</p>
							 | 
						|
								<p>Fixed mysql field max_length problem. Fix suggested by Jim Nicholson (jnich#att.com)</p>
							 | 
						|
								<p><b>1.00 16 April 2001</b></p>
							 | 
						|
								<p>Given some brilliant suggestions on how to simplify ADOdb by akul. You no longer need to
							 | 
						|
								setup $ADODB_DIR yourself, and ADOLoadCode() is automatically called by ADONewConnection(), 
							 | 
						|
								simplifying the startup code.</p>
							 | 
						|
								<p>FetchNextObject() added. Suggested by Jakub Marecek. This makes FetchObject() obsolete, as
							 | 
						|
								this is more flexible and powerful.</p>
							 | 
						|
								<p>Misc fixes to SelectLimit() to support Access (top must follow distinct) and Fields() 
							 | 
						|
								in the array recordset. From Reinhard Balling.</p>
							 | 
						|
								<p><b>0.96 27 Mar 2001</b></p>
							 | 
						|
								<p>ADOConnection Close() did not return a value correctly. Thanks to akul#otamedia.com.</p>
							 | 
						|
								<p>When the horrible magic_quotes is enabled, back-slash () is changed to double-backslash (\).
							 | 
						|
								This doesn't make sense for Microsoft/Sybase databases. We fix this in qstr().</p>
							 | 
						|
								<p>Fixed Sybase date problem in UnixDate() thanks to Toni Tunkkari. Also fixed MSSQL problem
							 | 
						|
								in UnixDate() - thanks to milhouse31#hotmail.com.</p>
							 | 
						|
								<p>MoveNext() moved to leaf classes for speed in MySQL/PostgreSQL. 10-15% speedup.</p>
							 | 
						|
								<p>Added null handling in bindInputArray in Execute() -- Ron Baldwin suggestion.</p>
							 | 
						|
								<p>Fixed some option tags. Thanks to john#jrmstudios.com.</p>
							 | 
						|
								<p><b>0.95 13 Mar 2001</b></p>
							 | 
						|
								<p>Added postgres7 database driver which supports LIMIT and other version 7 stuff in the future.</p>
							 | 
						|
								<p>Added SelectLimit to ADOConnection to simulate PostgreSQL's "select * from table limit 10 offset 3".
							 | 
						|
								Added helper function GetArrayLimit() to ADORecordSet.</p>
							 | 
						|
								<p>Fixed mysql metacolumns bug. Thanks to Freek Dijkstra (phpeverywhere#macfreek.com).</p>
							 | 
						|
								<p>Also many PostgreSQL changes by Freek. He almost rewrote the whole PostgreSQL driver!</p>
							 | 
						|
								<p>Added fix to input parameters in Execute for non-strings by Ron Baldwin.</p>
							 | 
						|
								<p>Added new metatype, X for TeXt. Formerly, metatype B for Blob also included
							 | 
						|
								text fields. Now 'B' is for binary/image data. 'X' for textual data.</p>
							 | 
						|
								<p>Fixed $this->GetArray() in GetRows().</p>
							 | 
						|
								<p>Oracle and OCI8: 1st parameter is always blank -- now warns if it is filled.</p>
							 | 
						|
								<p>Now <i>hasLimit</i> and <i>hasTop</i> added to indicate whether 
							 | 
						|
								SELECT * FROM TABLE LIMIT 10 or SELECT TOP 10 * FROM TABLE are supported.</p>
							 | 
						|
								<p><b>0.94 04 Feb 2001</b></p>
							 | 
						|
								<p>Added ADORecordSet::GetRows() for compatibility with Microsoft ADO. Synonym for GetArray().</p>
							 | 
						|
								<p>Added new metatype 'R' to represent autoincrement numbers.</p>
							 | 
						|
								<p>Added ADORecordSet.FetchObject() to return a row as an object.</p>
							 | 
						|
								<p>Finally got a Linux box to test PostgreSql. Many fixes.</p>
							 | 
						|
								<p>Fixed copyright misspellings in 0.93.</p>
							 | 
						|
								<p>Fixed mssql MetaColumns type bug.</p>
							 | 
						|
								<p>Worked around odbc bug in PHP4 for sessions.</p>
							 | 
						|
								<p>Fixed many documentation bugs (affected_rows, metadatabases, qstr).</p>
							 | 
						|
								<p>Fixed MySQL timestamp format (removed comma).</p>
							 | 
						|
								<p>Interbase driver did not call ibase_pconnect(). Fixed.</p>
							 | 
						|
								<p><b>0.93 18 Jan 2002</b></p>
							 | 
						|
								<p>Fixed GetMenu bug.</p>
							 | 
						|
								<p>Simplified Interbase commit and rollback.</p>
							 | 
						|
								<p>Default behaviour on closing a connection is now to rollback all active transactions.</p>
							 | 
						|
								<p>Added field object handling for array recordset for future XML compatibility.</p>
							 | 
						|
								<p>Added arr2html() to convert array to html table.</p>
							 | 
						|
								<p><b>0.92 2 Jan 2002</b></p>
							 | 
						|
								<p>Interbase Commit and Rollback should be working again.</p>
							 | 
						|
								<p>Changed initialisation of ADORecordSet. This is internal and should not affect users. We
							 | 
						|
								are doing this to support cached recordsets in the future.</p>
							 | 
						|
								
							 | 
						|
								<p>Implemented ADORecordSet_array class. This allows you to simulate a database recordset
							 | 
						|
								with an array.</p>
							 | 
						|
								<p>Added UnixDate() and UnixTimeStamp() to ADORecordSet.</p>
							 | 
						|
								<p><b>0.91 21 Dec 2000</b></p>
							 | 
						|
								<p>Fixed ODBC so ErrorMsg() is working.</p>
							 | 
						|
								<p>Worked around ADO unrecognised null (0x1) value problem in COM.</p>
							 | 
						|
								<p>Added Sybase support for FetchField() type</p>
							 | 
						|
								<p>Removed debugging code and unneeded html from various files</p>
							 | 
						|
								<p>Changed to javadoc style comments to adodb.inc.php.</p>
							 | 
						|
								<p>Added maxsql as synonym for mysqlt</p>
							 | 
						|
								<p>Now ODBC downloads first 8K of blob by default
							 | 
						|
								<p><b>0.90 15 Nov 2000</b></p>
							 | 
						|
								<p>Lots of testing of Microsoft ADO. Should be more stable now.</p>
							 | 
						|
								<p>Added $ADODB_COUNTREC. Set to false for high speed selects.</p>
							 | 
						|
								<p>Added Sybase support. Contributed by Toni Tunkkari (toni.tunkkari#finebyte.com). Bug in Sybase 
							 | 
						|
								  API: GetFields is unable to determine date types.</p>
							 | 
						|
								<p>Changed behaviour of RecordSet.GetMenu() to support size parameter (listbox) properly.</p>
							 | 
						|
								<p>Added emptyDate and emptyTimeStamp to RecordSet class that defines how to represent 
							 | 
						|
								  empty dates.</p>
							 | 
						|
								<p>Added MetaColumns($table) that returns an array of ADOFieldObject's listing 
							 | 
						|
								  the columns of a table.</p>
							 | 
						|
								<p>Added transaction support for PostgresSQL -- thanks to "Eric G. Werk" egw#netguide.dk.</p>
							 | 
						|
								<p>Added adodb-session.php for session support.</p>
							 | 
						|
								<p><b>0.80 30 Nov 2000</b></p>
							 | 
						|
								<p>Added support for charSet for interbase. Implemented MetaTables for most databases. 
							 | 
						|
								  PostgreSQL more extensively tested.</p>
							 | 
						|
								<p><b>0.71 22 Nov 2000</b></p>
							 | 
						|
								<p>Switched from using require_once to include/include_once for backward compatability with PHP 4.02 and earlier.</p>
							 | 
						|
								<p><b>0.70 15 Nov 2000</b></p>
							 | 
						|
								<p>Calls by reference have been removed (call_time_pass_reference=Off) to ensure compatibility with future versions of PHP, 
							 | 
						|
								except in Oracle 7 driver due to a bug in php_oracle.dll.</p>
							 | 
						|
								<p>PostgreSQL database driver contributed by Alberto Cerezal (acerezalp#dbnet.es). 
							 | 
						|
								</p>
							 | 
						|
								<p>Oci8 driver for Oracle 8 contributed by George Fourlanos (fou#infomap.gr).</p>
							 | 
						|
								<p>Added <i>mysqlt</i> database driver to support MySQL 3.23 which has transaction 
							 | 
						|
								 support. </p>
							 | 
						|
								<p>Oracle default date format (DD-MON-YY) did not match ADOdb default date format (which is YYYY-MM-DD). Use ALTER SESSION to force the default date.</p>
							 | 
						|
								<p>Error message checking is now included in test suite.</p>
							 | 
						|
								<p>MoveNext() did not check EOF properly -- fixed.</p>
							 | 
						|
								<p><b>0.60 Nov 8 2000</b></p>
							 | 
						|
								<p>Fixed some constructor bugs in ODBC and ADO. Added ErrorNo function to ADOConnection 
							 | 
						|
								 class. </p>
							 | 
						|
								<p><b>0.51 Oct 18 2000</b></p>
							 | 
						|
								<p>Fixed some interbase bugs.</p>
							 | 
						|
								<p><b>0.50 Oct 16 2000</b></p>
							 | 
						|
								<p>Interbase commit/rollback changed to be compatible with PHP 4.03. </p>
							 | 
						|
								<p>CommitTrans( ) will now return true if transactions not supported. </p>
							 | 
						|
								<p>Conversely RollbackTrans( ) will return false if transactions not supported. 
							 | 
						|
								</p>
							 | 
						|
								<p><b>0.46 Oct 12</b></p>
							 | 
						|
								Many Oracle compatibility issues fixed. 
							 | 
						|
								<p><b>0.40 Sept 26</b></p>
							 | 
						|
								<p>Many bug fixes</p>
							 | 
						|
								<p>Now Code for BeginTrans, CommitTrans and RollbackTrans is working. So is the Affected_Rows
							 | 
						|
								and Insert_ID. Added above functions to test.php.</p>
							 | 
						|
								<p>ADO type handling was busted in 0.30. Fixed.</p>
							 | 
						|
								<p>Generalised Move( ) so it works will all databases, including ODBC.</p>
							 | 
						|
								<p><b>0.30 Sept 18</b></p>
							 | 
						|
								<p>Renamed ADOLoadDB to ADOLoadCode. This is clearer.</p>
							 | 
						|
								<p>Added BeginTrans, CommitTrans and RollbackTrans functions.</p>
							 | 
						|
								<p>Added Affected_Rows() and Insert_ID(), _affectedrows() and _insertID(), ListTables(), 
							 | 
						|
								 ListDatabases(), ListColumns().</p>
							 | 
						|
								<p>Need to add New_ID() and hasInsertID and hasAffectedRows, autoCommit </p>
							 | 
						|
								<p><b>0.20 Sept 12</b></p>
							 | 
						|
								<p>Added support for Microsoft's ADO.</p>
							 | 
						|
								<p>Added new field to ADORecordSet -- canSeek</p>
							 | 
						|
								<p>Added new parameter to _fetch($ignore_fields = false). Setting to true will 
							 | 
						|
								 not update fields array for faster performance.</p>
							 | 
						|
								<p>Added new field to ADORecordSet/ADOConnection -- dataProvider to indicate whether 
							 | 
						|
								 a class is derived from odbc or ado.</p>
							 | 
						|
								<p>Changed class ODBCFieldObject to ADOFieldObject -- not documented currently.</p>
							 | 
						|
								<p>Added benchmark.php and testdatabases.inc.php to the test suite.</p>
							 | 
						|
								<p>Added to ADORecordSet FastForward( ) for future high speed scrolling. Not documented.</p>
							 | 
						|
								<p>Realised that ADO's Move( ) uses relative positioning. ADOdb uses absolute. 
							 | 
						|
								</p>
							 | 
						|
								<p><b>0.10 Sept 9 2000</b></p>
							 | 
						|
								<p>First release</p>
							 | 
						|
								<p>
							 |