ZeosLib - open source tools for your database solutions

# ZeosDBO Change Notes

### ZeosLib Development Group

## 1. Changes in Release 7.0.1 - alpha (NOT RELEASED YET)

### 1.1. Bugs fixed from Mantis Bug Tracker

The bug tracker can be found at: http://zeosbugs.firmos.at

- #0000216 [normal] Multiselect in TDbGrid wont work
- #0000211 [normal] Save blob with sqlite and Delphi 2009/2010

### 1.2. Other Bugs fixed

- FB/IB shortInteger parameters support added (http://zeos.firmos.at/viewtopic.php?t=3088)
- 3 Bugs in Master/Detail Mechanisms (http://zeos.firmos.at/viewtopic.php?t=3090)
- Reconnect-Bug in MySQL lib (http://zeos.firmos.at/viewtopic.php?t=3127)
- ADO SetParams->Reopen failure! (http://zeos.firmos.at/viewtopic.php?t=2988)
- SQLite strange characters on retrieval (D2010)
- SQLite3 Connect Error (D2010) (http://zeos.firmos.at/viewtopic.php?t=2766)

### 1.3. Features added

- [SQLITE] Enabled busy_timeout() using connection properties - by johank (http://zeos.firmos.at/viewtopic.php?t=2853)
- Start of Trigger Metadata (IB/FB)- by EgonHugeist (http://zeos.firmos.at/viewtopic.php?t=3140)
- [MYSQL] Added support for Mysql 5.5 (new library name and a few new constants
- New GroupedConnection and ConnectionGroup components - by una.bicicleta (http://zeos.firmos.at/viewtopic.php?t=2760)
- Added ParamChar Property to Dataset components and SQLProcessor to indicate which character parameters start with
- [Delphi XE] Compiles on Delphi XE (http://zeos.firmos.at/viewtopic.php?t=2956)
- [ORACLE] Handle OCI_SUCCESS_WITH_INFO as a warning (http://zeos.firmos.at/viewtopic.php?t=773)
- [POSTGRES] Added support for TZStoredProc component(http://zeos.firmos.at/viewtopic.php?t=2905)
- [POSTGRES] Added TZPgEventAlerter component for asynchronous notifying(http://zeos.firmos.at/viewtopic.php?t=2757)
- [POSTGRES] Added support for new libpq.so.5 filename on Linux(http://zeos.firmos.at/viewtopic.php?t=2803)
- Added varUInt64 support to DecodeVariant function for D11+ (http://zeos.firmos.at/viewtopic.php?t=2736)
- [SQLite] Blobdata is now stored as original bytes, without conversion

### 1.4. Internal Changes

- [POSTGRES] Statements no longer keep a pointer to the connection handle but get it directly from the associated connection object (http://zeos.firmos.at/viewtopic.php?t=2599)

## 2. Changes in Release 7.0.0 - alpha (30.12.2009)

### 2.1. Bugs fixed from Mantis Bug Tracker

The bug tracker can be found at: http://zeosbugs.firmos.at

- #0000208 [normal] TZAbstractRODataset bug and improvement (MIDAS IProviderSupport and IsUniDirectional)
- #0000209 [normal] honor compiler conditional defines for all packages
- #0000204 [normal] internalpost and bookmark
- #0000203 [normal] MySQL Driver Fix and Optimatization
- #0000202 [normal] Indonesian Translation Update
- #0000201 [normal] Patch to solve some lib problems with SQLite3 under Linux.
- #0000190 [normal] 64-bit support : first step (comon + mysql driver)
- #0000178 [normal] Error compiling Zeos under Linux.
- #0000178 [normal] INVALID_HANDLE_VALUE is undefined
- #0000126 [normal] Quoting specific to PostgreSQL

### 2.2. Other Bugs fixed

- [IB/FB] AV in TZInterbase6PreparedStatement.UnPrepareInParameters when opening an invalid sql command (http://zeos.firmos.at/viewtopic.php?t=2361)
- [Common] Overflow while converting variant of type (Int64) into type (Integer) when deleting a record (http://zeos.firmos.at/viewtopic.php?t=2286)
- [ADO] Column type metadata request for MSSQL returns no type (http://zeos.firmos.at/viewtopic.php?t=2155)
- [Common] Some dates of form 2008-1-1 seem not to work good with function TimestampStrToDateTime (http://zeos.firmos.at/viewtopic.php?t=2093)

### 2.3. Features added

- [SQLite] removed support for SQLite2
- [POSTGRES] Added new Postgres 8.4 SQL keywords (http://zeos.firmos.at/viewtopic.php?t=2523)
- [COMMON] TZConnection.Pingserver now resets the ZConnection state when failing (http://zeos.firmos.at/viewtopic.php?t=2293)
- [Common] Added ZURL unit to the core package. This unit provides splitting and composing routines for connect strings.
- [IB/FB] Added support for milliseconds (http://zeos.firmos.at/viewtopic.php?t=2354)
- [Oracle] Connections are now made using the OCIEnvNlsCreate method instead of OCIEnvInit and use property 'codepage=[UTF8,0..max Word value]' (http://zeos.firmos.at/viewtopic.php?t=2172)
- [COMMON] Renamed IZObject.Hash to IZObject.GetHashCode after the new Delphi 2009 version (http://zeos.firmos.at/viewtopic.php?t=2131)
- [COMMON] Default strings to TWideString fields on Delphi 2009 (http://zeos.firmos.at/viewtopic.php?t=2119)
- [COMMON] Added BCB 2009 packages.
- [COMMON] Added Delphi 2009 to the supported compilers. Big thanks to gto and mariuszekpl for this work!!
- [COMMON] Added support for DefaultExpression TField property (#0000146)
- [COMMON] (Delphi only issue) Added a test to avoid opening a dataset when ComponentState=csDestroying
- [Mysql] Implemented reuse of prepared statements for mysql
- [Common] Added Prepared property and Prepare/Unprepare methods to TZAbstractRODataset
- [IB/FB] ZDbcInterbase6Utils.AffectedRows now also returns a value for select statements (http://zeos.firmos.at/viewtopic.php?t=2002)
- [IB/FB] Add Connection timeout parameter (http://zeos.firmos.at/viewtopic.php?t=2002)
- [POSTGRES] Limited default output of TZPostgresSQLDatabaseMetadata.GetTables to 'TABLE', 'VIEW' and 'TEMPORARY TABLE' (http://zeos.firmos.at/viewtopic.php?t=1960)
- [COMMON] Sanity check: assert that row buffer length is not exceeded at a proper time - by HeidiSQL Team
- [COMMON] Splitted IZDatabaseMetadata into IZDatabaseMetadata (retrieves info about DB content) and IZDatabaseInfo (retrieves info about server properties) (http://zeos.firmos.at/viewtopic.php?t=1946)
- [POSTGRES] PostgreSQL UTF8 Charset Patch
- [MYSQL] Removed support for mysql < 4.1
- [COMMON] Removed packages for Delphi 5 and 6, Kylix 2 and CBuilder 5
- [COMMON] New dataset option doDontSortOnPost (http://zeos.firmos.at/viewtopic.php?t=1931)
- [COMMON] Added ZQuery.RefreshCurrentRow method
- [MYSQL] Added Prepared Statements support (Experimental)
- [COMMON] ZQuery property ValidateUpdateCount true by default

### 2.4. Internal Changes

- [FPC] Removed T***IntDynArray types from ZCompatibility as FPC 2 and higher also defines these
- [MYSQL] Cleanup of type/constant definitions in mysql plain drivers
- [MYSQL] Updated libmysql versions in SVN repository
- [COMMON] Added Delphi2009 to the automated build scripts and test suite
- [DB2] Removed never used DB2 plain drivers
- [COMMON] Reworked component bitmaps

## 3. Changes in Release 6.6.7 - stable (NOT RELEASED YET)

### 3.1. Bugs fixed from Mantis Bug Tracker

The bug tracker can be found at: http://zeosbugs.firmos.at

- #0000218 [normal] Oracle NUMBER wrong conversion - New Oracle tests
- #0000212 [normal] Oracle Dbc bugs

### 3.2. Other Bugs fixed

- Patch to fix problems on SQLite Blob Fields (http://zeos.firmos.at/viewtopic.php?t=3045)
- Error when trying to edit and save data without modification (http://zeos.firmos.at/viewtopic.php?t=2936)
- New QueryInterface handling by Lazarus (http://zeos.firmos.at/viewtopic.php?t=3009)
- ftFixedChar input parameters were not handled correctly (http://zeos.firmos.at/viewtopic.php?t=2979)
- Error Param.DataType in TZStoredProcedure (http://zeos.firmos.at/viewtopic.php?t=2742)
- [Common] alter and column were not on the list of AnsiSQLKeywords
- [MySql] Added support for mysql 5.1 library on LINUX (http://zeos.firmos.at/viewtopic.php?t=2693)
- [Common] TZAbstractDataset.InternalPost sets unused bookmarks (http://zeos.firmos.at/viewtopic.php?t=2666)
- [FPC/Lazarus] Locale problems for decimal fields and fpc < 2.3.1 (http://zeos.firmos.at/viewtopic.php?t=2643)
- [POSTGRES] AccessViolation when PostgreSQL server connection lost (http://zeos.firmos.at/viewtopic.php?t=2599)
- [SQLITE] Replaced 'SELECT LAST_INSERT_ROWID()' by LastRowId API call
- [Common] TZTable and TZQuery Filter property do not work correctly with datetime fields (http://zeos.firmos.at/viewtopic.php?t=2055)

### 3.3. Features added

- Zeoslib 6.6 is in it's stable phase. No features, except for eventual translations and docs, will (should) be added.
- [POSTGRES] Added new Postgres 8.3 Enum support (http://zeos.firmos.at/viewtopic.php?t=2625)

### 3.4. Internal Changes

- [Lazarus/FPC] More tests enabled for Lazarus/FPC.
- FPC : changing types of FHandle and HModul to PtrInt in ZCompatibility.pas and ZPlainLoader.pas for 64-bit compatibility (http://zeos.firmos.at/viewtopic.php?t=2358)
- Add system path to testing path (to avoid installing oracle oci in different testing environments)
- TZVariant : Putting vtBoolean, vtInteger, vtFloat.vtDatetime and vtPointer in a case record saves memory without any loss in function (http://zeos.firmos.at/viewtopic.php?t=2696)
- [POSTGRES] A beter fix for bug report 136 (http://zeos.firmos.at/viewtopic.php?t=2599)
- [Lazarus/FPC] Test database rebuild for Lazarus/FPC added.

## 4. Changes in Release 6.6.6 - stable (30.12.2009)

### 4.1. Bugs fixed from Mantis Bug Tracker

The bug tracker can be found at: http://zeosbugs.firmos.at

- #0000177 [normal] Type mismatch error on runtime
- #0000210 [Oracle] Bug inserting blob with length = 0
- #0000187 [PostgreSQL] PingServer does (still) not detect lost connections
- #0000207 [PostgreSQL] BlobRead Memory Leak
- #0000194 [IB/FB] ZEOS is replicating NULL values on UPDATE statement
- #0000173 [normal] unable to activate login dialog
- #0000184 [Interbase 5] Can't get fields' list of dataset from Interbase 5.5 server
- #0000183 [Lazarus] Icon for TZIBEventAlerter added

### 4.2. Other Bugs fixed

- [PostgreSQL] Connection string optimization for postgresql (http://zeos.firmos.at/viewtopic.php?t=2636)
- [Linux] Sqlite3 library name fix for Linux (http://zeos.firmos.at/viewtopic.php?t=2600)
- [COMMON] Scriptparser error finding a multicharacter delimiter(http://zeos.firmos.at/viewtopic.php?t=2517)
- [Oracle] Memory leak when reading BLOB values (http://zeos.firmos.at/viewtopic.php?t=2504)

### 4.3. Features added

- Zeoslib 6.6 is in it's stable phase. No features, except for eventual translations and docs, will (should) be added.
- [COMMON] Added functions TRIM, VAL, CTOD, DTOS, LEFT and RIGHT.
- [COMMON] New property FetchRow in ZDataSet (http://zeos.firmos.at/viewtopic.php?t=1857)

### 4.4. Internal Changes

- [Lazarus/FPC] Test suite for Lazarus/FPC added.

## 5. Changes in Release 6.6.5 - stable (25.05.2009)

### 5.1. Bugs fixed from Mantis Bug Tracker

The bug tracker can be found at: http://zeosbugs.firmos.at

- #0000179 [normal] Case problem for unit ZPlainMySqlConstants on linux
- #0000002 [normal] FIREBIRD and NUMERIC/DECIMAL precision problem
- #0000124 [normal] TZSQLMonitor access violation when destroying
- #0000117 [normal] FPC - Float Fields with null values produce many exceptions
- #0000150 [normal] Second JOIN in from clause was stripped by the SQL parser after ON or USING clause
- #0000159 [normal] Fixed case of some *MySql* unit names
- #0000165 [normal] Incorrect autogeneration of INSERT statement
- #0000162 [normal] Precision issue when recording values from TClientDataSet

### 5.2. Other Bugs fixed

- [COMMON] Delphi compiler throws a hint that the assigned return value for ExecuteDirect is never used. (http://zeos.firmos.at/viewtopic.php?t=2369)
- [IB/FB] Memory leak in TZInterbase6CallableStatement.ExecuteUpdatePrepared (http://zeos.firmos.at/viewtopic.php?t=2250)
- [IB/FB] Buffer problem with FB2.1 isc_interprete implementation (http://zeos.firmos.at/viewtopic.php?t=2099)
- [IB/FB] Interbase/Firebid holding connection on shutdown (http://zeos.firmos.at/viewtopic.php?t=2309)
- [COMMON] Compilation error with SHOW_WARNING directive (http://zeos.firmos.at/viewtopic.php?t=2312)
- [ADO] SQLServer default GUID fieldlength incorrect (http://zeos.firmos.at/viewtopic.php?t=2300)
- [PostgreSQL] Bit type fields were not found (http://zeos.firmos.at/viewtopic.php?t=2260)
- [IB/FB] Subtype is 0 for a computed decimal field and not 1 as in all the other cases (http://zeos.firmos.at/viewtopic.php?t=2278)
- [COMMON] Make sure dbc connection is nil after ZConnection.Close, even when an exception occurs (http://zeos.firmos.at/viewtopic.php?t=2275)
- [COMMON] Query property ‘ValidateUpdateCount=true/false’ was not added for TZUpdateSQL(http://zeos.firmos.at/viewtopic.php?t=2249)
- [IB/FB] TZInterbase6DatabaseMetadata.UncachedGetTables: Access Violation and duplicated rows (http://zeos.firmos.at/viewtopic.php?t=2236)
- [Lazarus] Removed libc from uses clauses when using fpc (http://zeos.firmos.at/viewtopic.php?t=2196)
- [DELPHI] Removed conditional compilation of database dependent Tokenizers (http://zeos.firmos.at/viewtopic.php?t=2138)
- [Lazarus] Updated ZUpdateSqlEditor.lrs to be compatible with the newest Lazarus release (http://zeos.firmos.at/viewtopic.php?t=2095)
- [Oracle] Added TZOracleCachedResolver class because oracle doesn't support queries without FROM clause (http://zeos.firmos.at/viewtopic.php?t=2080)
- [COMMON] Removed some compiler warnings (http://zeos.firmos.at/viewtopic.php?t=2081)

### 5.3. Features added

- Zeoslib 6.6 is in it's stable phase. No features, except for eventual translations and docs, will (should) be added.
- [COMMON] TZConnection.Pingserver now resets the ZConnection state when failing (http://zeos.firmos.at/viewtopic.php?t=2293)
- [GENERAL] Added ZEOS_DISABLE_XXXXX 'Conditional Defines' to Zeos.inc to allow compiling out database support on a per project basis(http://zeos.firmos.at/viewtopic.php?t=2195)
- [POSTGRES] Implemented ZConnection.ServerVersion for Postgres
- [POSTGRES] Implemented Pingserver for Postgres (http://zeos.firmos.at/viewtopic.php?t=2156)
- [IB/FB] Implemented Pingserver for IB/FB (http://zeos.firmos.at/viewtopic.php?t=2274)
- [IB/FB] Added Firebird 2.1 driver (http://zeos.firmos.at/viewtopic.php?t=2099)

### 5.4. Internal Changes

- NONE

## 6. Changes in Release 6.6.4 - stable (01.11.2008)

### 6.1. Bugs fixed from Mantis Bug Tracker

The bug tracker can be found at: http://zeosbugs.firmos.at

- #0000147 [normal] Column mapping problem with TZUpdateSql and Refreshing data
- #0000140 [normal] ZUpdateSQL set null as default datetime field value (Firebird)
- #0000136 [normal] Memory leaking on failed Postgres connection
- #0000139 [normal] Some MySQL units are still being compiled when only the SQLite protocol is enabled
- #0000137 [normal] Exception Field '...' cannot be modified (calculated, lookup field) (Adjusted fix for Mantis Bug 99)
- #0000133 [normal] Exception class EZSQLException : attempted update of read-only column (calculated)
- #0000131 [normal] ZIBEventAlerter compile error in Lazarus/Linux
- #0000129 [normal] Access Violation due to forget to assign Connection in TZQuery

### 6.2. Other Bugs fixed

- [COMMON] Bad letter case for unit ZSqlProcessor in ZSqlStrings.pas (http://zeos.firmos.at/viewtopic.php?t=2067)
- [Postgresql] Replaced the default notice processor which printed to stderr in console applications (and the test suite) (http://zeos.firmos.at/viewtopic.php?t=2021)
- [COMMON] Escape underscores from the stored procedure name before looking up it's parameters (http://zeos.firmos.at/viewtopic.php?t=2035)
- [COMMON] Removed table prefixes in generated insert/update statements in property editor for TZSQLUpdate (http://zeos.firmos.at/viewtopic.php?t=2023)
- [SQLITE] Fixed updates to tables from attached databases (http://zeos.firmos.at/viewtopic.php?t=2025)
- [ADO] Method calls (GetSchemaNames() and GetCatalogNames()) ran into an exception (http://zeos.firmos.at/viewtopic.php?t=1774)
- [COMMON] "List out of bounds" in Metadata (http://zeos.firmos.at/viewtopic.php?t=1995)
- [COMMON] TZSQLProcessor Tokenizer problem (http://zeos.firmos.at/viewtopic.php?t=1977)
- [MYSQL] Misprint in ZPlainMysqlFunc.inc (http://zeos.firmos.at/viewtopic.php?t=1979)
- [IB/FB] Memory Leak in TZIBEventAlerter (http://zeos.firmos.at/viewtopic.php?t=1962)
- [IB/FB] Only link TZIBEventAlerter when ENABLE_INTERBASE is defined (http://zeos.firmos.at/viewtopic.php?t=1949)

### 6.3. Features added

- NONE. Zeoslib 6.6 is in it's stable phase. No features, except for eventual translations and docs, will be added.

### 6.4. Internal Changes

- NONE

## 7. Changes in Release 6.6.3 - stable (08.08.2008)

### 7.1. Bugs fixed from Mantis Bug Tracker

The bug tracker can be found at: http://zeosbugs.firmos.at

- #0000123 [normal] Can not open TZTable in PostgreSQL (Replaced fix for Mantis Bug 97 (SVN rev. 344) by a more correct one)
- #0000106 [normal] After Post of DataSet with Filtered=True, SortedFields defined, Row position is changed unexpectedly
- #0000122 [normal] Problem with quoted fields (PostgreSQL keywords)
- #0000121 [normal] ZQuery Insert/Update problem with MSSQL/ADO
- #0000119 [normal] Memory leak in ZDbcSqLiteResultSet.pas
- #0000113 [high] MYSQL - EZSQLException with message 'Column with name "Extra" was not found'. using latest MySQL 5.1.x
- #0000108 [normal] Duplicated result when using locate, loPartialKey and Filter
- #0000111 [normal] Lookup field value disappers on insert and edit and reappears after post or cancel
- #0000105 [normal] Fields default expresion is determined from the wrong source
- #0000095 [normal] It is impossible to be connected to base on tcpip
- #0000099 [normal] Read only fields not really read only
- #0000094 [normal] Invalid argument to time encode
- #0000097 [normal] Cannot open table where tablename is similar to database name (Quoting TZTable.tablename)
- #0000093 [normal] Wrong clearing of allocated data for SQLDA
- #0000090 [normal] Default values from table are not used / Corrected Null fields handling in combination with autoinc and default values
- #0000088 [normal] Delphi11 test packages missing in ZEOSLIB_TESTING_REV329
- #0000086 [normal] Field values truncated
- #0000087 [normal] Backslash gone in resultset
- #0000082 [normal] Incorrect catalog name when no schema present and incorrect order
- #0000080 [high] Naming convention in release build...

### 7.2. Other Bugs fixed

- [COMMON] Enabled BeforeRefresh and AfterRefresh Dataset properties for FPC2 (http://zeos.firmos.at/viewtopic.php?t=1749)
- [COMMON] Quoted Aliases in queries were not recognised (http://zeos.firmos.at/viewtopic.php?t=1797)
- [COMMON] In Delphi 2006 and FPC 2.1 TWideStringField.SetAsWideString() puts a PWideChar into the buffer, so deserializing it as a PWideString is probably wrong. (http://fisheye3.cenqua.com/changelog/heidisql?cs=1383)
- [COMMON] Remove "TextHeight = 13" from UpdateSql Editor in Lazarus (http://zeos.firmos.at/viewtopic.php?t=1872)
- [COMMON] Don't use ASM call in TZCollection.Error when using FPC. FPC should be able to do this platform independent (http://zeos.firmos.at/viewtopic.php?t=1882)
- [COMMON] Fixed Delphi5 compilation
- [COMMON] Join two tokens if the first is a ttInteger and the next a ttWord (http://zeos.firmos.at/viewtopic.php?t=1897)
- [IB/FB] Metadata.GetColumns corrected (http://zeos.firmos.at/viewtopic.php?t=1682)
- [IB/FB] Autocommit didn't work for TZStoredProcedure when using Firebird

### 7.3. Features added

- [COMMON] Added polish translation
- [SQLite3] Improve Column Affinity (http://zeos.firmos.at/viewtopic.php?t=1605)
- [COMMON] Added ZConnection.ExecuteDirect and ZConnection.ExecuteUpdateDirect functions (http://zeos.firmos.at/viewtopic.php?t=1656)
- [COMMON] Automatically generated updates could update more than 1 row at once or no row at all. Query property ‘ValidateUpdateCount=true/false’ added (http://zeos.firmos.at/viewtopic.php?t=1757)
- [COMMON] Added ZIBEventAlerter to the components package
- [COMMON] Added TZTable.exists (http://zeos.firmos.at/viewtopic.php?t=1879))
- [IB/FB] Added support for Firebird hard commits. (Very experimental!!!)
- [MYSQL] Added libmysql51.dll to list of possible dll's for protocol Mysql-5

### 7.4. Internal Changes

- [COMMON] ant build support for Linux added
- [COMMON] Added GetXxxCacheKey functions (http://zeos.firmos.at/viewtopic.php?t=1881)
- [COMMON] Removed caching code that was identical between all descendent classes of TZAbstractDatabaseMetadata (http://zeos.firmos.at/viewtopic.php?t=1881)
- [MYSQL] Added new constants for mysql 5.1 library

## 8. Changes in Release 6.6.2 - rc (12.12.2007)

### 8.1. Bugs fixed from Mantis Bug Tracker

The bug tracker can be found at: http://zeosbugs.firmos.at

- #0000022: [general] Split ZPlainMysql.inc
- #0000023: [component] Problem using WideStrings and ADO protocol when chaging any WideString Field Data, same nature as Issue 0010 (fduenas)
- #0000016: [core] Integer field treated as Largeint
- #0000005: [postgresql] Memory grow when connection failed
- #0000013: [interbase/firebird] can not use a string as parameter value for integer/long parameters
- #0000019: [interbase/firebird] string parameters don't work for blob fields
- #0000033: [interbase/firebird] Fixes a bug in UpdateString procedure for ZDbcInterbase6Utils
- #0000034: [interbase/firebird] Lookup field make other field in TZQuery lost the value (disappear from display but still exists in database)
- #0000020: [interbase/firebird] second call to stored proc fail with a parameter mismatch error (cipto_kh)
- #0000040: [component] Error in conversion int64 to variant in InternalPost on Delphi/C++Builder 5 (ZAbstractDataset.pas)
- #0000042: [general] Using the same component (TZStoredProcedure) after ExecProc then using Open it will crash (cipto_kh)
- #0000037: [component] ZEOS AND LAZARUS 0.9.23 and FPC 2.1.3 WIN32 ERROR
- #0000038: [component] Can't open sqlite databases with Umlauts like äöü in path (fixed)
- #0000046: [component] fpc 2.1.4 cannot compile ZAbstractRODataset.pas
- #0000028: [interbase/firebird] TZInterbase6DatabaseMetadata.HasNoWildcards - wrong result (cipto_kh)
- #0000055: [component] Wrong index variable used when doing "refresh" in ZUpdateSQL component
- #0000050: [postgresql] 'Access Violation' error on ZQuery.Open on table that has columns with non-standard type
- #0000041: [postgresql] TZPostgreSQLDatabaseMetadata.GetSequences return not schema-qualified sequence list (ZDbcPostgreSqlMetadata.pas)
- #0000049: [core] Lookup fields with int64 data type not work in Delphi/C++Builder 5
- #0000007: [interbase/firebird] TZSequence error, value from prior database (cipto_kh)
- #0000048: [general] TZSQLProcessor does not react when Script text is not properly delimited
- #0000056: [component] Protection fault when doing an EAbort exception in BeforeConnect of TZConnection (patch incl.)
- #0000064: [parsesql] Mysql /*! ...*/ special comments shouldn't be considered as real comments
- #0000063: [component] TZSQLProcessor and comments handling
- #0000061: [component] Wrong data returning in select
- #0000065: [general] FPC 2.2 doesn't compile
- #0000068: [postgresql] Wrong datatype declared
- #0000043: [component] ReadOnlyQuery + TDataSetProvider = Blank fields on details
- #0000059: [component] ZQuery-DSP-CDS empty field data fetched while using incremental fetching (PacketRecords>0
- #0000027: [interbase/firebird] problem handling DEFAULT NULL in domain *AND* in table
- #0000069: [general] Compiler Warnings in Delphi 2006
- #0000071: [interbase/firebird] Floating point not display correctly (cipto_kh)
- #0000076: [mysql] SSL Connection Error
- #0000075: [sqlite] Memory Error Detected
- #0000070: [general] Missing license files
- #0000079: [dbc] Typo in SQl statement in TZInterbase6Connection.Open;
- #0000017: [mysql] LargeInt fields treated as Variant
- #0000060: [sqlite] Memory leaks in sqlite-3 driver

### 8.2. Other Bugs fixed

- Metadata (mdTables) was missing remarks data (http://zeos.firmos.at/viewtopic.php?t=1567)
- Memory leaks (http://zeos.firmos.at/viewtopic.php?t=1408)
- Correction of child dataset refresh (http://zeos.firmos.at/viewtopic.php?t=1381)
- Set autocommit issue when transaction isolation=tiNone (http://zeos.firmos.at/viewtopic.php?t=1251)
- TZAdoDatabaseMetadata.GetColumns doesn't fetch database and schema names. (http://zeos.firmos.at/viewtopic.php?t=1252)
- TZRowAccessor.CompareBuffers didn't work for stUnicodeStreams (http://zeos.firmos.at/viewtopic.php?t=1254)
- TZSQLStrings.StatementCount = 1 when the statement is empty (http://zeos.firmos.at/viewtopic.php?t=1228)
- Error handling empty string values (makes them NULLS) (http://zeos.firmos.at/viewtopic.php?t=1255)
- Read blob truncates last byte for ADO (http://zeos.firmos.at/viewtopic.php?t=1250)
- Close/Open sequence replaced by refresh in TZAbstractRODataset.RefreshParams (http://zeos.firmos.at/viewtopic.php?t=1093)
- Wrong mysql version reference in GetMoreResults function
- Required should be false if a field is not writable (http://zeos.firmos.at/viewtopic.php?t=767)
- Avoid open/close of detail dataset on edit of master dataset (http://zeos.firmos.at/viewtopic.php?t=1093)
- FreeAndNil fix in ZSequence - (http://zeos.firmos.at/viewtopic.php?t=1108)

- Mysql fixes by HeidiSQL Team (Repository viewer at http://fisheye3.cenqua.com/changelog/heidisql)

  - Avoid an access violation within a for loop which got run once even when there were 0 columns in a result. (HeidiSql rev. 993)
  - Fix bug "SHOW FULL PROCESSLIST on mysql v4 server messes Zeos up". (HeidiSql rev. 775 and 900)
  - Fix handling default values. (HeidiSql rev. 505)
  - Zeos did not recognize UNSIGNED ZEROFILL columns as being UNSIGNED. (HeidiSql rev. 521)

### 8.3. Features added

- All mysql_options() and connection clientflag settings can now be set using TZConnection.Properties (http://zeos.firmos.at/viewtopic.php?t=1528)
- Updated indonesian translations (by tohenk)
- Added Russian translation (by ormada)
- Use Mysql_real_escape_string instead of mysql_escape_string when executing mysql emulated prepared statements
- Added IZConnection.EscapeString function. This funtion returns a string that can be used in SQL statements. Uses Mysql_real_escape_string or Mysql_escape_string functions for mysql databases and EncodeCString function for other databases
- FPC changes -> now zeoslib also works with MSEIDE - By MSEIDE team (http://www.homepage.bluewin.ch/msegui)
- Added all reserved words, functions from mysql 5.1 documentation to metadata GetXXX functions (http://zeos.firmos.at/viewtopic.php?t=1213)
- Replaced 'Select' in Getversion to Native library call
- Added support for Mysql SSL connections
- Added TZConnection.GetColumnNames function (http://zeos.firmos.at/viewtopic.php?t=1127)
- Added Delphi2007 package files (http://zeos.firmos.at/viewtopic.php?t=1173)
- Changed PingServer behaviour : Only return false when ping fails. No exception. This function is a check, so it should be allowed to return false. On demand of HeidiSql team.
- Modified Readme text for mysql embedded server example
- Added Multiple resultset support on Dbc level (http://zeos.firmos.at/viewtopic.php?t=459 and http://zeos.firmos.at/viewtopic.php?t=912)
- ZDataset Events in Lazarus (http://zeos.firmos.at/viewtopic.php?t=1130)

- New Features by HeidiSQL Team (Repository viewer at http://fisheye3.cenqua.com/changelog/heidisql)

  - Added unknown data types from mysql_com.h. (HeidiSQL rev. 835)
  - Make ConvertMySQLHandleToSQLType() more readable (HeidiSql rev. 676)
  - Ignore columns that do not originate from the table when resolving updates (HeidiSql rev. 555)
  - Added function TZAbstractResultSetMetadata.HasDefaultValue (HeidiSql rev. 504)
  - TZConnection.Reconnect added (HeidiSql rev. 53)

### 8.4. Internal changes

- Release build script has been rewritten
- Fixed the automatic build system and test suite. Works now certainly for D5, D7, D2006, D2007
- Added SVN ant utilities to repository so build scripts should run on a standard Ant installation
- Added Lazarus/Fpc to the automatic build system. Test suite is not available, however. Package *.pas files are necessary for automated build system.
- Removed some compiler warnings and unused units.
- Start of the zeoslib documentation project using doxygen

## 9. Changes in Release 6.6.1 - beta (25.02.2007)

### 9.1. Bugs fixed

- #0000003: Field confusion in GetColumnInfo

- #0000010: Widestring field's contents Using ado protocol and access database is unreadable

  When using a TzQuery or TZTable using ado protocol and an access database with OLEDB Jet engine, the contents of any TWideString field is unreadable (it returns symbols) and sometimes throws Out of Memory error.

- #0000016: Integer field treated as Largeint
- #0000003: Field confusion in GetColumnInfo

- #0000021: ClientVersion and ServerVersion properties fail on closed connection

  When calling ClientVersion and ServerVersion on a closed mysql connection they refer to an unassigned object.

- #0000023: Problem using WideStrings and ADO protocol when chaging any WideString Field Data, same nature as Issue #0000010

  When using a TzQuery or TZTable using ado protocol and an access database with OLEDB Jet engine, when changing the the contents of any TWideString field, the values is unreadable (it returns symbols) and sometimes throws Out of Memory error.

- EOutofMemory with Delphi 2006 + Firebird (http://zeos.firmos.at/viewtopic.php?t=972)
- Zeos 6.6-Beta: func GetTableNames() / PingServer (http://zeos.firmos.at/viewtopic.php?t=992)
- Race happens? (http://zeos.firmos.at/viewtopic.php?t=974)
- MySQL and FLOAT fields (precision) (http://zeos.firmos.at/viewtopic.php?t=930)
- Memory Leak - ZeosLib 6.5.1, MySQL 4.1, Lazarus (http://zeos.firmos.at/viewtopic.php?t=812)
- Bug in ZAbstractRODataset (6.6.0 beta version) (http://zeos.firmos.at/viewtopic.php?t=898)
- Bug in ZDbcPostgreSqlMetadata.pas(6.6 beta) (http://zeos.firmos.at/viewtopic.php?t=839)
- Postgres Blob field bug (http://zeos.firmos.at/viewtopic.php?t=931)
- Do not work sorterfields (http://zeos.firmos.at/viewtopic.php?t=920)
- Fix for TZInterbase6DatabaseMetadata.GetSequence (http://zeos.firmos.at/viewtopic.php?t=864)
- ERangeError after FormCreate (http://zeos.firmos.at/viewtopic.php?t=902)
- Delphi5 and MySql5 (http://zeos.firmos.at/viewtopic.php?t=886)
- Zquery and Ztable not accept numeric database (http://zeos.firmos.at/viewtopic.php?t=882)
- BCB6 ZDbc.bpk (http://zeos.firmos.at/viewtopic.php?t=854)
- Fix for Bug in ZInterbase6Sequence.GetNextValue (http://zeos.firmos.at/viewtopic.php?t=856)
- ztable problem : editing and TableName (http://zeos.firmos.at/viewtopic.php?t=748)
- MySQL: Cannot update this query type(backticks) (http://zeos.firmos.at/viewtopic.php?t=552)
- InterBase/FireBird BLOB handling error (http://zeos.firmos.at/viewtopic.php?t=855)
- Duplicate messages in portuguese language (ttp://zeos.firmos.at/viewtopic.php?t=848)

## 10. Changes in Release 6.6.0 - beta (20.10.2006)

### 10.1. Features added

- LinkedFieldNames vs. IndexFieldnames (See http://zeos.firmos.at/viewtopic.php?t=796)
- New Dataset features : BeforeApplyUpdates (event), AfterApplyUpdates (event), SortType (property), EmptyDataSet (procedure)
- Added separate drivers for embedded Firebird server (http://zeos.firmos.at/viewtopic.php?t=630)
- Delphi 2006 packages
- Mysql5 Support integrated
- PostgreSQL 8.x Support integrated
- Added Sybase Adapitive Serve Anywhere (ASA) Support for Versions 7, 8 and 9.
- MySQL Ping Commando added
- Insert "const" for ref-counted parameter (http://zeos.firmos.at/viewtopic.php?t=519)
- MySQL Embedded Server Arguments (http://zeos.firmos.at/viewtopic.php?t=777)
- separated Firebird from interbase/strict dll loading for Firebird
- TZConnection: property 'Version', showing the current version
- Support for fkInternalCalcFields in datasets
- Added property DesignConnection: If DesignConnection is true connected is not set to true during runtime and must be set explicitly
- Enabled all connection options for mysql. Now one can add the desired options by adding them to the connections property strings.
- Rewrite of ZPlainMysqlXX files to add embedded server support for versions 4.0,4.1,5 of mysql
- Added new library functions to plain mysql drivers (4.1)
- Added new library functions to plain mysql drivers (3.23 and 3.20)
- Error handling for Postgres now returns result codes from server
- Two Phase Commit for PostgreSQL
- Added parameter capability to TZSQLProcessor so you now can use parameters inside your SQL scripts like you do in "normal" queries.
- Added const "ZEOS_VERSION" to ZClasses and added property "Version" to TZConnection.
- Added support of fkInternalCalcFields for ZEOS datasets.
- Added property "DesignConnection" to turn off active design time connections during runtime, automatically.
- Added PropertyEditor for TField-properties in several components.

- Added default values to the following properties:

  - TZAbstractRODataset.RequestLive: False
  - TZAbstractRODataset.ParamCheck: True
  - TZAbstractRODataset.ShowRecordTypes: [usUnmodified, usModified, usInserted]
  - TZAbstractRODataset.IsUniDirectional: False
  - TZAbstractRODataset.Options: [doCalcDefaults]
  - TZAbstractRODataset.ReadOnly: True
  - TZAbstractDataset.UpdateMode: umUpdateChanged
  - TZAbstractDataset.WhereMode: wmWhereKeyOnly
  - TZAbstractDataset.CachedUpdates: False
  - TZConnection.SQLHourGlass: False
  - TZQuery.ReadOnly: False
  - TZTable.ReadOnly: False
  - TZSqlMetadata.Scope: 0
  - TZSqlMetadata.Nullable: False
  - TZSqlMetadata.Unique: False
  - TZSqlMetadata.Approximate: False

- /SG/ Changed default values for following properties:

  - TZConnection.ReadOnly: False

- /SG/ Changed following default initializations:

  - - TZAbstractDataset.RequestLive := True;
  - TZConnection.ReadOnly := False;

- /SG/ Changed following property names:

  - TZQuery.RequestLive --> TZQuery.ReadOnly
- /SG/ Added parameter capability to TZSQLProcessor like in TZQuery.

### 10.2. Patches applied

- Const and optimization (http://zeos.firmos.at/viewtopic.php?t=551)
- MissingConsts, Inlining, SilentException (http://zeos.firmos.at/viewtopic.php?t=566)
- Packages for delphi 6 (http://zeos.firmos.at/viewtopic.php?t=577)
- PostgreSQL EncodeString() (http://zeos.firmos.at/viewtopic.php?t=589)
- Date, Time and Float on Lazarus (http://zeos.firmos.at/viewtopic.php?t=598)
- Updates for ZMessages (translations)
- Const modifier added to function definitions where possible to improve speed (http://zeos.firmos.atviewtopic.php?t=519)

### 10.3. Bugs fixed

- ZDbcConnection.pas contains wrong line breaks (http://zeos.firmos.at/viewtopic.php?t=553)
- Other files with LF instead of CRLF (http://zeos.firmos.at/viewtopic.php?t=554)
- svn rev. 59 (Linux filenames problem) (http://zeos.firmos.at/viewtopic.php?t=593)
- error type date in lazarus (http://zeos.firmos.at/viewtopic.php?t=574)
- MySQL v.5.0 .3+ and Decimals (http://zeos.firmos.at/viewtopic.php?t=605)
- ZSqlUpdate append error (http://zeos.firmos.at/viewtopic.php?t=677)
- Error opening Query (http://zeos.firmos.at/viewtopic.php?t=628)
- Compiling in Borland C++ Builder 6 (http://zeos.firmos.at/viewtopic.php?t=694)
- compiling for delphi5/6 (http://zeos.firmos.at/viewtopic.php?t=802)
- Memory leak MSSQL2000 TZQuery.ExecSQL (http://zeos.firmos.at/viewtopic.php?t=788)
- ZEOS_TESTING_REV_113 Sybase-Bug (http://zeos.firmos.at/viewtopic.php?t=822)
- Removed Rangecheck Directive (all files) (FPC 2.0.2 is buggy)
- Updated lazarus package for correct compilation. (Missing packages, corrupt package file,...)
- Some more Lazarus package modifications
- Memory leak bug fixed (http://zeos.firmos.at/viewtopic.php?t=461)
- Delimiter problem in ZSQLProcessor fixed (http://zeos.firmos.at/viewtopic.php?t=527)
- Fixed Delphi 5 install problems (http://zeos.firmos.at/viewtopic.php?t=335)
- Added {$LIBSUFFIX 'X0'} to projectfiles of D7 and D2006 (http://zeos.firmos.at/viewtopic.php?t=561)
- Removed ASA driver from Lazarus packages because not compilable in Lazarus.
- Bug in GetIndexInfo (http://zeos.firmos.at/viewtopic.php?t=196)
- Added GetClientVersion and GetServerVersion to Connection/Driver interfaces
- Integrated contribution from Terence : Added more specific metadata clearcache possibilities.
- Delphi 7 : Split up Component Package into Component and ComponentDesign (http://zeos.firmos.at/viewtopic.php?t=726)
- Delphi 7 : Added compiler directives to avoid inclusion of not wanted database drivers. (http://zeos.firmos.at/viewtopic.php?t=746)
- InternalPost (Procedure) (http://zeos.firmos.at/viewtopic.php?t=781)
- Updatesql component (OnUpdate event)
- Mssql Select * error (http://zeos.firmos.at/viewtopic.php?t=788)
- Added Lazarus fixes : ASA support did not compile well.
- Firebird: Memory leak bug fixed (http://zeos.firmos.at/viewtopic.php?t=461)
- Corrections for non-strict dllloading
- Bytea/blob - PostgreSQL - UNICODE/UTF8 (http://zeos.firmos.at/viewtopic.php?t=683)
- Integrated patch from Fduenas concerning http://zeos.firmos.at/viewtopic.php?t=677
- Mysql MetaData Patch to support temporary tables
- Corrected the temporary tables patch. Now it tries to get information on a 'non-existing' table, just in case it is a temporarary one. If it is temporary the table is added to the cache If it's not, the resulting error is suppressed but the table will stay unknown.
- Various modifications/extentions to Mysql DBC and Plain driver units - Written by fduenas and mdaems
- Removed calls to Mysql datastructure where possible (Only necessary for mysql3.20) - written by mdaems
- Bad tiReadCommited corrected (http://zeos.firmos.at/viewtopic.php?t=570)
- Widestring Fields are always returning Null if one tries to access property Value.
- Firebird 1.5: field named "STATUS_REG" that doesn't show in TZDataSet.
- FPC/Lazarus: Connecting to a Firebird Database will cause a Range Check Error.
- Zeos appears to be bringing back Postgresql money type as ftfloat instead of ftcurrency.
- Row inserting is impossible with simple queries when TZQuery.ReadOnly property set to false and no TZQuery.UpdateObject defined.
- In the metadata, all user tables were being reported as type VIEW.
- Problem in ZSysUtils.BytesToVar().
- Problem with TZAbstractDataset.InternalPost.
- When using GetPChar() Result of GetPChar() points to unallocated memory.
- ZeosDBO (Ado) update problem with TZUpdateSQL
- Username property not refreshed if changed in login box
- Problem with TZTable refresh method
- IProviderSupport - PSUpdateRecord
- Firebird 1.5 Read Only Database on CD
- ZQuery's FieldsEditor brings diff. types for the same field
- Login Dialog unstable appearance
- Wrong results for lookup fields
- open cursors in Oracle
- Change data when Dataset.State = dsBrowse
- Exception when deleting record with ClientDataSet
- Strange behaviour Zeos - DBLookUpComboBox
- CreateStatement and Properties
- WideString Updates
- MySQL:zeos doesnt assign default '0000-00-00' to Date Fields
- TZAbstractRODataset.RereadRows;
- CaseSensitive locate on WideString fields
- Filter issues
- AV error when opening a DML with a TZQuery using doSmartOpen
- Incorrect TZPostgreSQLNotify definition
- Access violation on large string fields.
- MySQL Date/Time bug + Fix
- Firebird 1.5: unsupported datatype
- Startup failing if compiled with "Full Boolean Evaluation"
- SetFieldData for ftString don't refresh
- ADO TDateTime parameter wrong type
- TZTable's TabeleName Property - not list with ADO protocol

## 11. Changes in Release 6.5

### 11.1. Release 6.5.1 - 23 Nov 2004

- /CNL/ Fixed Bug#912639 Result sets were not decoded
- /CNL/ Another version of PostgreSQLToSQLType() is added to boost execution speed

### 11.2. Release 6.5.1 - 17 July 2004

- /SM/ Fixed Bug#1021705 Numeric values overflow
- /SM/ Fixed Bug#1034795 Metadata don't filter the table type
- /SM/ Fixed Bug#993352 problem with TZInterbase6DatabaseMetadata.GetTables table type SYSTEM TABLE
- /SM/ Fixed Bug#991069 Creation of a DB and FKs in Firebird
- /SS/ Fixed Bug#985629 Locate and Lookup don't find float fields.
- /SS/ Added database error codes to rethrown exceptions in dataset.
- /SS/ Fixed Bug#993981 MySQL and PostgreSQL drivers do not process float values if decimal separator other then “.”.
- /SS/ Fixed Bug#995080 “List Index Out of Bounds” exception in `Dataset`.`UpdateStatus` on empty resultset.
- /SS/ Fixed Bug#999658 Truncation of BigDecimal fields. Thanks to Kestutis Laurinavicius.
- /SS/ Fixed Bug#1000534. SQL Parser error when “join ... on” clause contains functions with parameters.
- /SS/ Fixed Bug#1004534 Access Violation when `RecNo` is called on closed Dataset.
- /SS/ Fixed Bug#1045286 Method `IsNull` returns incorrect result for fields containing “” characters.
- /SS/ Added support for cidr, inet and macaddr column types into PostgreSQL driver.

### 11.3. Release 6.5.0 - 10 March 2004

- /SS/ Added IProviderSupport interface implementation to datasets.
- /SS/ Added support for MySQL 4.1 database.
- /SS/ Added support for PostgreSQL 7.4 database.
- /SS/ Added support for Oracle 9i database.
- /SS/ Fixed Bug#981208 SELECT * FROM mydb.mytable is not updateable.
- /SS/ Replaced thrown exception type from Datasets to `EZDatabaseError` custom class.
- /SS/ Fixed Bug#966267 Fixed processing OnEditError, OnPostError, OnDeleteError events.
- /SS/ Fixed memory leak in `Statement`.`Execute`. Now all `Connections`, `Statements` and `ResultSets` must be explicitely closed before desposing.
- /SS/ Added doSmartOpen option to `Dataset` to allow executing DML statements by `Open` without throwing exception.
- /SM/ Fixed Bug#959307 `TZDBLibCallableStatement`.`Execute` Empty parameter string sever translate as null value
- /SM/ Fixed Bug#907497 `TZDBLibCallableStatement`.`ExecutePrepared` Return incorrect string values of stored procedure
- /SM/ Fixed Bug#951881 `TZFirebirdNativeLibraryLoader` Interbase do not work with INTERBASE_CRYPT enabled
- /SM/ Fixed #956613 `TZInterbase6DatabaseMetadata`.`GetTables` Error in metadata reading
- /SM/ Fixed #947915 `TZInterbase6CallableStatement`.`ExecuteUpdatePrepared` do noit raised exception in Stored Procedure
- /SM/ Fixed #945251 `TZAbstractDatabaseMetadata`.`GetTableTypes` always returns “TABLE” as result, never“VIEW” and never “SYSTEM TABLE”.
- /SS/ Fixed Bug#914057 `ZSQLMonitor`.`SaveToFile` don't use FileName.
- /SM/ Fixed Bug #914436 Text fields with specified character set are not recognized in MySQL driver.
- /SM/ Fixed Bug #914369 Fixed memory leaks in Interbase driver
- /SS/ Fixed Bug#912220 PostgreSQL driver doesn't read oid blobs.
- /SM/ Fixed Bug#909181 do not sets fields to null
- /SM/ Fixed Bug #914436 Bug several MySQL TEXT Fields are not correct identified
- /SS/ Fixed Bug #919395 Memory leak in `TZExpressionParser`.`TokenizeExpression`. Thanks to mocarts.
- /SS/ Fixed Bug #919401 When dataset is in Edit mode function `UpdatesPending` always returns true does matter were changes made or not. Thanks to mocarts.
- /SS/ Added processing for query parameters with ftGraphic type. Thanks to Pavel Blahovec.
- /SS/ Added support for SQL specific syntax in Query.SQL and UpdateSQL.
- /SS/ Added support for SQLite 2.8 database.
- /SS/ Fixed Bug #924861 Memory leak, when client cannot connect to server
- /SS/ Added depended compilation for drivers, included into TZConnection drivers list. Now users may select which drivers they want to use to decrease size of their applications. (See /src/Zeos.inc file for details)
- /SS/ Refactored ZDBC metadata classes.
- /SS/ Fixed processing of Int64 values in Dataset.Refresh.
- /SS/ Fixed Bug #933623 'current transaction is aborted, commands ignored until end of transaction block.' error in postgresql when previous statement in transaction fails. Now if autocommit mode is set components automatically rollback failed statements. In manual commit mode developer should explicitely call Connection.Rollback.
- /SS/ Added GetProtocolNames, GetCatalogNames, GetSchemaNames, GetTableNames, GetStoredProcNames methods into TZConnection component.
- /SS/ Fixed Bug #824786 TZMetadata shows PostgreSQL 7.4 system tables from 'information_schema' as regular tables.
- /SS/ Changed type for Dataset.ShowRecordTypes to TUpdateStatusSet.
- /SS/ Fixed duplicated `AfterScroll` event in `Query`.`Locate` and `Query`.`FindRecord` methods.
- /SS/ Fixed Bug#948940 Random “Can not update this query type” error in PostgreSQL driver. Thanks to Sergio Freue.
- /SS/ Replaced RequestLive with ReadOnly property in `TZTable` component to make it more compatible with standard `TTable`.
- /SS/ Added InTransaction property in `TZConnection`component.
- /SS/ Fixed Bug#957126 Incorrect processing of empty strings in default values in MySQL driver. Thanks to Alex/ghost3k.

## 12. Changes in Release 6.1

### 12.1. Release 6.1.4 - 21 January 2004

- /SS/ Fixed Bug#880459 Access Violation in `ZSQLProcessor`.`Execute` method when `Connection` is not assigned.
- /SS/ Fixed Access Violation in MySQL driver when opening a resultset for queries which do not return any data.
- /SS/ Fixed Bug#881634 Complex select statements return wrong field types.
- /SS/ Fixed Bug#883027 Wrong comparison for rows with Int64 and Binary Array fields. Thanks to sskacar.
- /SS/ Fixed Bug#884135 Problem in master-detail links with unsigned int keys.
- /SS/ Fixed Bug#882150 Incorrect processing empty strings in filter expressions.
- /SS/ Fixed Bug#887103 BeforeScroll and AfterScroll events are not working with `SetRecNo`. Thanks to Alexander Klenin.
- /SS/ Fixed Bug#886841 Error in processing default values for columns with type enum(y,n) in MySQL driver.
- /SM/ Fixed Bug#886914 Incorrect updating CHAR not null and empty fields in Interbase/Firebird driver.
- /SM/ Fixed Bug#886854 Problem with field types for system fields in Firebirb 1.5 RC8 type
- /SM/ Fixed Bug#882232 Invalid Color property value in ZUpdateSqlEditor.dfm
- /SM/ Fixed Bug#865299 Interbase 5.5 wrong metadata reading
- /SS/ Fixed a memory leak in TZSQLProcessor component. Thanks to Martin Fibiger.
- /SS/ Fixed Bug#894367 Incorrect parsing queries with non-unique field column names.
- /SS/ Fixed Bug#910804 Wrong processing regular expressions with '*abc' style patterns.

### 12.2. Release 6.1.3 - 11 December 2003

- /SS/ Fixed leaving cached statement object in `TDataset`.`ExecSQL` after connection component changed.
- /SS/ Fixed Bug#862261 Empty blobs sometimes included into Where clause of generated DML statements as <field>=NULL. It caused missed updates.
- /SS/ Fixed compilation for Kylix 1 compiler.
- /SS/ Added functions CONCAT, UPPER, LOWER, SUBSTR and STRPOS to filter expressions.
- /SS/ Fixed Bug#864797 Filter Expressions don't process columns with `NULL` values correctly.
- /SM/ Fixed Bug#860196 & #851664 Call Stored Procedures and Firebird 1.5
- /SM/ Fixed bug #864622 ZQuery return numeric(3,1) fields as IntegerField
- /SS/ Fixed bug #869609 Wrong behaviour of MySQL AutoIncremented fields
- /SS/ Fixed error handling in CachedResultSet.DeleteRow method. Thanks for Tobias Giesen.
- /SM/ Fixed bug #865585 Wrong exception behavior in ExecuteQuery and ExecuteQueryPrepared Thanks for Alex Gilev.
- /SS/ Fixed processing connection timeout parameter for PostgreSQL.

### 12.3. Release 6.1.2 - 12 November 2003

- /SS/ Added `IS NULL`, `IS NOT NULL`, `NOT LIKE` operations to Filter Expression.
- /SS/ Fixed Bug#842678 AV when removing `ZUpdateSQL` from `ZQuery`.
- /SS/ Added `codepage` (client codepage) and `timeout` connection timeout to MySQL and PostgreSQL drivers.
- /SS/ Added single line comments started with `--` to MySQL parser.
- /SS/ Fixed Bug#841425 TZSQLProcessor did not skip empty statements and it cased database errors.
- /SS/ Fixed Bug#837764 Transaction Isolation Level not set after Commit and Rollback in PostgreSql driver.
- /SS/ Fixed Bug#840608 Where clause in generated DML statement was incorrect if it included `NULL` values.
- /SS/ Fixed generation of UPDATE statements with UpdateMode=`UpdateChanged`.
- /SS/ Fixed Bug#840218 `Lookup` method returned incorrect result field.
- /SM/ Fixed Bug#833766 FloatField don't load scale correct
- /SM/ Added support for interbase 7
- /SM/ Fixed Bug#845312 Wrong float/double updating in ZDbcInterbase6Utils
- /SM/ Fixed Bug#847593 Codepage don't set correctly
- /SM/ Fixed Bug#841559 Triggers and messages
- /SM/ Fixed Bug#843655 Blob fields don't updates
- /SM/ Fixed Bug#847594 Exceptions descriptions
- /SM/ Fixed Bug#844597 AV Error after closing window of ZQuery's Properties properties
- /SM/ Fixed Bug#841515 C++ Builder 4 Error installing ZeosDBO
- /SS/ Fixed Bug#849723 Time columns with “00:00:00” values are converted to NULLs in MySQL driver.
- /SS/ Added doAlwaysDetailResync option to Dataset.Options which turns on/off synchronization between Master and Detail dataset when Master is in Edit or Insert mode.
- /JF/ Fixed Bug#853690 AutoInc fields in MS SQL
- /JF/ Fixed Bug#842694 Quoted Fields generated by `TZUpdateSQL` not accepted by MySQL
- /JF/ Fixed Bug#841488 Problem with milliseconds in MS SQL dates
- /SM/ Added support PostgreSql-7.3. Added libpq73.dll and potocol postgresq-7.3

### 12.4. Release 6.1.1 - 28 September 2003

- /SS/ Added support for column default values defined in database. Default values of `TField` are still unsupported.
- /SS/ Replaced Borland Variants with custom implementation. It solved many problems with data type convertions and Int64 support in filter expression, master/detail links, locate and many other places.
- /SS/ Optimized `Locate` and `Lookup` methods in `TDataset`. The speed was increased up to 6 times.
- /SS/ Added UpdateMode and WhereMode properties to `TDataset`. UpdateMode has two options: `umUpdateChanged` to post to database only updated fields and `umUpdateAll` to post all fields.TZWhereMode controls WHERE clause in posted DML statements. `wmWhereKeyOnly` includes in WHERE only key fields if they exist, `wmWhereAll` includes all fields.
- /SS/ Added Options property to `TDataset`. Now it supports two options `doOemTranslate` to turn on Ansi to OEM translation in visual controls and `doCalcDefaults` to turn on/off calculation of column default values defined in database.
- /SS/ Fixed Bug#816846. PostgreSQL text columns are included now into WHERE clause in autogenerated DML statements. Before they were skipped and it caused problems for tables with text columns where primary key was not defined.
- /SS/ Fixed Bug#816850 “Changing blobs overwrite old values.”
- /SS/ Added SortedFields property to `TDataset`. The format of the SortedFields value should be:<Field Name> [ASC | DESC] [,...]
- /SS/ Fixed Bug#810249. Added workaround to prevent objects self-destruction in contructors. The bug exist in Delphi 4 and C++ Builder 4 compilers. It decrements reference counter and destroys object if in constructor some interface method is called.
- /SS/ Excluded ADO driver from Delphi 4 and BCB 4 packages due to lack of support OLE data types in that compilers.
- /SS/ Fixed Bug#824792. Fixed “Interface not supported” error in `TZMonitor` in C++ Builder 5 compiler.
- /SM/ Fixed Bugs #824948 and #824875 “Firebird 1.5 - Statement not allowed”.
- /SM/ Fixed Bug#815955 “Wrong mapping numeric(15) to `TIntegerField`”
- /SM/ Fixed Bug#804112 “AutoCommit Interbase/Firebird transaction problem”
- /SM/ Fixed Bug#789879 “Firebird: Float->Numeric”
- /SM/ Fixed Bug#825029 “examples - Controls conflict names with Delphi7”
- /DD/ Fixed Bug#817612 “C++ Builder hpp generation bug”
- /SS/ Added support for PostgreSQL domains (user defined types). As a drawback all domain strings types have length 255 characters.
- /SM/ Fixed Bug#815861 “Incorrect parsing of the Version#” for PostgreSql7.x betas.
- /SS/ Fixed Bug#831776 “TZLoggingEvent is not found”.
- /SS/ Fixed Bug#831559 “Usage SQL keywords in column names”.
- /JF/ Feature Requests#831925. Added several connection parameters to MS SQL: `application name`, `workstation name` and few more.
- /JF/ Fixed Bug#826621. Added reconnection in the case of network problems to MS SQL driver.
- /JF/ Fixed Bug#817400 “Schema support for `TZTable`”
- /SS/ Fixed Bug#832467 “Filter expression does not process string constants contained single quote symbols inside”.
- /SS/ Fixed Bug#830804 “Changing dataset fields order in runtime (dragging column in `DBGrid` for example) causes AV”.
- /SS/ Fixed Bug#833197 “Refresh problem with filtered data”.
- /JF/ Fixed issues related to ADO in Delphi 4 and C++ Builder 4 compilers.
- /SS/ Added `STRICT_DLL_LOADING` definition into `/src/Zeos.inc` to prevent loading of `libmysql.dll` and `libpq.dll` libraries by default. If was done because of constant user problems with unsupported dlls. To enforce loading default libraries you should comment the definition and recompile the components.
- /SS/ Added optimization for switching transaction modes in MySQL driver.
- /JF/ Added support of SQLHourGlass cursor in the component.

- /SS/ Fixed Bug#834798 “Locate with [loCaseInsensitive] parameters does not work”.

- /SS/ Fixed Bug#839540 Logical operations don't work properly in filter expression.

### 12.5. Release 6.1.0 - 28 July 2003

- /SS/ Rewritten SQL parsers, removed Parse package from the project.
- /SS/ Modified `TZSQLProcessor` component.
- /JF/ ADO driver is added.
- /JF/ Modified `TZBlobStream` to support notification about change.
- /SS/ Code has been optimized.
- /SS/ Finished source code review.
- /SS/ Added parameters to ZDBC statements.
- /SS/ Added multiple statements property to `TZUpdateSQL`.
- /SS/ Added `TZSQLMonitor` component.
- /SS/ Added filter expressions
- /JF/ Stored procedure support for mssql dblib interface, works for sybase also
- /SS/ Added DataSource property in `TDataset` to support master-detail links.
- /SS/ Added MasterSource, MasterFields and IndexFieldNames to support master-detail links with client-side filtering
- /SS/ Added support for MySQL autoincremented fields
- /JF/ Added support for Sybase and MS SQL identity fields
- /JF/ Added support for exiting without error messages in case of broken connection
- /JF/ Added some new metadata columns to getcolumns to support calculated fields
- /JF/ Autoincremented field support for mssql, sybase and ado added to return the generated value.
- /JF/ Added workaround for procedure parameter type query for sybase. It works only for ASE12.5 or above
- /JF/ Added workaround for sybase structure 'AND NULL IS NULL' resulted in error: Invalid operator for datatype op: is null type: VOID TYPE.
- /SS/ Added `TZTable` component.
- /SS/ Added `TZSQLMetadata` component.
- /SS/ Added caching for database metadata
- /SM/ Fixed Bug#804112 AutoCommit Interbase/Firebird transaction problem.
- /SM/ Fixed Bug#795832 Exception handling in Interbase statement
- /SM/ Added Plain API for DB2

## 13. Changes in Release 6.0

### 13.1. Release 6.0.12 Patch#3 - 28 September 2003

- /SS/ Fixed Bug#817607 Fail refreshing Query when field names contain spaces.
- /SS/ Fixed AV when connection is destroyed before linked datasets (Thanks to Ask).
- /SS/ Fixed Bug#826624 Incorrect converting for Int64 Params (Thanks to Dmitry Krylov)
- /SS/ Fixed Bug#816925 Wrong mapping of Decimal and Numeric fields in MySQL
- /SS/ Fixed Bug#826886 AV in `TDataset`.`ExecSQL` after disconnecting `TZConnection`.

### 13.2. Release 6.0.12 Patch #2 - 28 September 2003

- /SS/ Fixed Bug#803616 Fail posting inserted and then updated records in cached updates mode.
- /SS/ Fixed Bug#804323 Calculated fields in read only datasets.
- /SS/ Fixed Bug#804640 Calculated fields of type `TCurrencyField` returns always 0.00.
- /SS/ Fixed Bug#802548 Error “List Index out of Bounds (-1)” in `Refresh` method.
- /SS/ Added missed events to `TZSQLProcessor` (Thanks to Josef Fuchs).
- /SS/ Added support for LONGTEXT field type in MySQL driver.

### 13.3. Release 6.0.12 Patch #1 - 28 September 2003

- /SS/ Fixed Bug#793351 access violation when assigning a field value
- /JF/ Fixed Bug#791101 Transaction not working with MS SQL
- /JF/ Fixed Bug#791096 “List index out of bounds” problem when canceling a newly added row.
- /SS/ Fixed Bug#798336 Not passing large objects to Postgres DB.
- /SS/ Fixed Bug#799863 Cannot see YEAR type in Delphi.

### 13.4. Release 6.0.12 - 18 July 2003

- /SS/ Fixed Bug#773400. In plain interface for MySQL 4.0 the name of shared library was 'libmysqld.so' instead of 'libmysqlclient.so'
- /SS/ Fixed Bug#772926 with incorrect `TZDataset`.`Cancel` behaviour.
- /SS/ Fixed out of range exception in `TZDataset`.`Last` method.
- /SS/ Fixed problem with incorrect order of dataset input parameters.
- /JF/ `Refresh` problem solved
- /SM/ Fixed Bug#768163 with unsigned int fields in MySQL

### 13.5. Release 6.0.11 - 08 July 2003

- /SS/ Eliminated all overrided methods in API, fixed support for C++ Builder 4,5,6 compilers.
- /SS/ Added optimization to `TZAbstractDODataset`.`ExecSQL` and `TZEmulatedPreparedStatement`. Now executing prepared statements without parameters about 10 times faster, with parameters - 25% faster.
- /SS/ Fixed `TZConnection`.`AutoCommit` and `TZConnection`.`TransactIsolationLevel` property behavior.
- /JF/ LoginPrompt support added. Delphi4 and Delphi5 needs some extra work.
- /SM/ Fixed Bug #759184 empty string field return by SQL query with concatination fields
- /SM/ Fixed Bug #707337 emty values for virtual columns
- /SS/ Added support for quoted parameters in `TZQuery` and `TZUpdateSQL`.
- /SS/ Fixed Bug#771217 caused by incorrect processing MySQL table names with special characters like 'my-table'
- /SS/ Fixed Bug#773022: wrong `TQuery`.`RecordCount` after deletes
- /SS/ Changed processing of “0000-00-00” dates in MySQL. Now they are treated as NULLs simular to ODBC drivers.

### 13.6. Release 6.0.10 - 13 June 2003

- /SS/ Fixed Bug#752603 in `TZDataset`.`GetFieldData` method which set Field.IsNull = `True` all the time.
- /SS/ Fixed Bug#753397: in bounds checking in `TZCollection`.`SetCapacity` which followed to Access Violation in Delphi 4.
- /SM/ Finished scripts build & test environment
- /SM/ Added Kylix2 support
- /SM/ Fixed test framework and tests for Kylix/Linux support
- /SS/ Fixed remaining issues with Delphi 4 and 5 compilers. The testing libraries for Delphi 4,5 are work as expected.
- /SM/ Fixed Interbase datetime parameters
- /JF/ Fixed varbinary datatype. It will be a blob field.
- /SS/ Fixed bug#750912: Interbase Lookup fields.
- /SM/ Fixed bug#754009: Cast error while fetching
- /SM/ Added Firebird 1.5 support
- /SM/ Fixed leak memory in `GetBlob` method for MySQL & PostgreSql
- /SS/ Added support for MySQL 4.0 native client
- /SS/ Fixed Bug#761300 Memory leak in `TZReadOnlyQuery`
- /JF/ The `TDataset's` default `Translate` method is overriden in order to provide basic OEM/ANSI translation, but later it should be database specific.
- /JF/ The previous one is removed because it caused more problems than it solved.

### 13.7. Release 6.0.9 - 18 May 2003

- /SS/ Fixed bugs in `TZCollection` class and `TZAbstractObject`.Equals (Thanks for Karl Waclawek).
- /SS/ Fixed Bug#733209 with incorrect decimal separator in `TZToken`.`GetString`. (Thanks to Leonardo Quaggiotto).
- /SS/ Added support for MySQL boolean type /enum('Y','N')/
- /SS/ Fixed Bug#726788 with mixed identificators in MySQL (Thanks to Maarten Bremer).
- /SS/ Fixed bug in numeric tokenizer. Combinations of symbols '.e' and '.E' were always processed as numbers. For example: a.eq_id was tokenized as 'a' '.e' 'q_id' instead 'a' '.' 'eq_id'
- /SM/ Added support Interbase 5, 6.X, Firebird 1.X
- /SM/ GetImportedKeys, GetExportedKeys, GetIndexInfo done for Interbase Database Metadata
- /SS/ Fixed Bug#740144 with search by Null fields in TZQuery.Locate
- /SS/ Fixed Bug#740899. Expressions Field=NULL were not properly converted into Field IS NULL in where clauses.
- /SS/ Completely rewritten SQL parsers because of peformance reasons.
- /SS/ Fixed Bug#739514 with national string convertion for postgresql.
- /JF/ Fixed Bug#728955 multiple results returned
- /JF/ Fixed datatype handling in metadata getColumn to match the modifications via Seroukhov
- /SS/ Fixed Bug#746225 with updating empty Memo fields.
- /SM/ Fixed Interbase metadata GetPrimaryKeys, GetProcedures, GetProcedureColumns
- /SS/ Fixed Bug#739448 with duplicated column names. Now if query returns columns: 'fld','fld','fld', result set will contain display labels 'fld','fld_1','fld_2'
- /SS/ Fixed Bug#733236 with time fields convertion in TDataset.Locate.
- /SS/ Optimized code, added DISABLE_CHECKING compiler definition into Zeos.inc file. According performance tests this definition gives about 10% speedup.
- /SM/ Fixed problem with WasNull in fetch processing in InterbaseResultSet.
- /SM/ Added example - controls.
- /SS/ Fixed Bug#725053 with empty lookup fields
- /SS/ Fixed Bug#739707: Variant convertion error in IZPreparedStatement.SetBlob
- /JF/ Fixed Numeric scale errors in sybase, was caused by usage of float type instead of double
- /JF/ Added a workaround for a bug? in mssql dblib interface. All text like '\'#13 was replaced to just #13. I just double the backslash in this case.

### 13.8. Release 6.0.8 - 15 April 2003

- /SS/ Fixed Bug#722651 AV in TZDbcMySQLResultSet.GetTimestamp
- /SS/ Added caching for Server version and data types in PostgreSQL connection.
- /RFC/ Added packages for Kylix 1 and Kylix 3.

### 13.9. Release 6.0.7 - 13 April 2003

- /SS/ Fixed Bug#706278 related to performance problems in MySQL
- /SS/ Fixed Bug#715099 in TZAbstractRODataset.FindNext
- /SS/ Added select parser for PostgreSQL
- /SS/ Added generic support for case sensitive catalogs, tables and columns
- /SS/ Fixed Bug#720785 in CachedResultSet error handling.
- /SS/ Fixed Bug#720787 in SQL parser performance
- /SS/ Added GetPChar/SetPChar methods to prevent multiple strings convertion
- /SS/ Added performance optimization into PreparedStatement and GenericCacheResolver.
- /SS/ Added packages for Kylix 1
- /JF/ Fixed MS SQL and Sybase quotation problems
- /JF/ Fixed FindColumn to properly support case sensitive and case insensitive columns

### 13.10. Release 6.0.6 - 30 March 2003

- /SS/ Fixed AV in Dataset.GetFieldData method.
- /SS/ Set default port for MySQL
- /SS/ Fixed Bug#707339 caused by incorrect mapping for boolean type.
- /SS/ Fixed Bug#707337 in PostgreSQL calculated columns.
- /SS/ Fixed Bug#707364 AV in TZSQLProcessor when exception happens
- /JF/ Optimized blob handling internally
- /SS/ Added SetCachedUpdates method to permit changes after query open.
- /SS/ Added BeforeRefresh and AfterRefresh events in Query components.
- /SS/ Added useresult connection parameter for MySQL
- /SS/ Made several fixes for PostgreSQL blobs.
- /DD/ Added packages for C++ Builder 6.

### 13.11. Release 6.0.5 - 18 March 2003

- /SS/ Modified transaction support for MySQL (Thanks to Pavel Shibanov).
- /SS/ Added GetSupportedProtocols method to IZDriver
- /SS/ Added packages for C++ Builder 4,5
- /SS/ Fixed Access Violation in MySQL.GetColumns
- /SS/ Fixed behavior of TZDataset.Last method.
- /SM/ Added scripts for build & test environment, restructured project packages
- /SS/ Added a property editor for ZConnection.Protocol
- /SS/ Added 'oidasblob' connection parameter to PostgreSQL when oidasblob=false (default) Oid fields are treated as integer and bytea fields as Blobs. When oidasblob=true Oid fields represent Blobs and bytea fields are ByteArray[256].
- /SS/ Added classes for Bug Report Test Cases
- /SS/ Fixed bug#702368 "... wrong size ..." when column in bytea datatype.
- /SM/ Fixed PostgreSQLToSQLType for PostgreSQL timestamptz datatype
- /SS/ Fixed ArrayOutOfBounds exception in TZReadOnlyDataSet.Reread
- /SS/ Fixed refreshing FieldDefs after SQL query update.

### 13.12. Release 6.0.4 - 24 February 2003

- /SS/ Added a reference implementation for Plain API multiversion support. It includes TZNativeLibraryLoader, IZPlainDriver, IZMySQLPlainDriver and other classes and interfaces.
- /SS/ Fixed SetTransactionIsolation for MySQL and PostgreSQL.
- /SS/ Fixed MaxRows in CachedResultSet, MySQLResultSet and PostgreSQLResultSet.
- /JF/ Modified SetTransactionIsolation for MsSql and Sybase
- /SS/ Renamed ZUpdateSql into ZSqlUpdate and ZBlobStream into ZStreamBlob to prevent conflicts with an older zeos version.
- /SS/ Modified PostgreSQL DBC API to use plain drivers.
- /SS/ Added ErrorCode to EZSQLException
- /SS/ Added ZSqlScript component

### 13.13. Release 6.0.3 - 17 February 2003

- /JF/ Fixed problem with queries using parameters with the same name
- /SS/ Implemented persistence for SQL Params in TZDataset and TZUpdateSQL.
- /SS/ Added DesignTime test application.
- /SS/ Implemented restoring SQL Params values after SQL query updates.

### 13.14. Release 6.0.2 - 9 February 2003

- /SS/ Updated project examples
- /SS/ Implemented reading FieldDefs on closed dataset. This feature is required to work with dataset columns in visual designer.
- /SS/ Implemented writing PostgreSql blobs.
- /SS/ Fixed three interface cycle references in Parse API which followed to massive memory leaks (Many thanks to Vincent Mahon, the author of MemCheck utility!)
- /SM/ Added testing framework classes
- /SS/ Fixed three interface cycle references in DBC API.
- /SS/ Changed AbstractDatabaseMetadata and MySQLDatabaseMetadata classes to reduce repeatable code.

### 13.15. Release 6.0.1 - 2 February 2003

- /SS/ Fixed date, time and datetime columns handling
- /SS/ Implemented support primary keys in autogenerated where clauses
- /SS/ Fixed problems with delete and insert in cached updates mode
- /SS/ Added synchronization between TZConnection and TZDataset components
- /SM/ Added icons and registration for non-visual components
- /JF/ Made numerious changes in MS SQL connectivity API

### 13.16. Release 6.0.0 - 25 January 2003

- Released the first alpha version with support for MySQL, PostgreSQL, Interbase 6+ and MS SQL.

(c) 1999 - 2006 The Zeos Development Group