This document was created using the >e-novative> DocBook Environment (eDE)

ZeosDBO Change Notes

ZeosLib Development Group

23 September 2005


Table of Contents

1. Changes in Release 6.5
2. Changes in Release 6.5
3. Changes in Release 6.1
4. Changes in Release 6.0

1. Changes in Release 6.5

1.1. Release 6.5.1 - 12 Oct 2005

  • /CNL/ Added PostGre 8.x support, now supporting only PostGre 7.4 and 8.x (6.5, 7.2 and 7.3 are discontinued).
  • /MD/ Added Sybase Adapitive Serve Anywhere (ASA) Support for Versions 7, 8 and 9.

2. Changes in Release 6.5

2.1. Release 6.5.1 - 25 Sep 2005

  • /SG/ Fixed Bug #1102816 Widestring Fields are always returning Null if one tries to access property Value.
  • /SG/ Fixed Bug #1177394 Firebird 1.5: field named "STATUS_REG" that doesn't show in TZDataSet.
  • /SG/ Fixed Bug #1195034 FPC/Lazarus: Connecting to a Firebird Database will cause a Range Check Error.
  • /SG/ Fixed Bug #1225966 Zeos appears to be bringing back Postgresql money type as ftfloat instead of ftcurrency.
  • /SG/ Fixed Bug #1237728 Row inserting is impossible with simple queries when TZQuery.ReadOnly property set to false and no TZQuery.UpdateObject defined.
  • /SG/ Fixed Bug #1245583 In the metadata, all user tables were being reported as type VIEW.
  • /SG/ Fixed Bug #1274400 Problem in ZSysUtils.BytesToVar().
  • /SG/ Fixed Bug #1274401 Problem with TZAbstractDataset.InternalPost.
  • /SG/ Added parameter capability to TZSQLProcessor so you now can use paraneters inside your SQL scipts like you do in "normal" queries.

2.2. Release 6.5.1 - 23 Sep 2005

  • /SG/ Fixed Bug #1102816 Widestring Fields are always returning Null if one tries to access property Value.
  • /SG/ Fixed Bug #1177394 Firebird 1.5: field named "STATUS_REG" that doesn't show in TZDataSet.
  • /SG/ Fixed Bug #1195034 FPC/Lazarus: Connecting to a Firebird Database will cause a Range Check Error.
  • /SG/ Fixed Bug #1225966 Zeos appears to be bringing back Postgresql money type as ftfloat instead of ftcurrency.
  • /SG/ Fixed Bug #1237728 Row inserting is impossible with simple queries when TZQuery.ReadOnly property set to false and no TZQuery.UpdateObject defined.
  • /SG/ Fixed Bug #1245583 In the metadata, all user tables were being reported as type VIEW.
  • /SG/ Fixed Bug #1274400 Problem in ZSysUtils.BytesToVar().
  • /SG/ Fixed Bug #1274401 Problem with TZAbstractDataset.InternalPost.
  • /SG/ Added parameter capability to TZSQLProcessor so you now can use paraneters inside your SQL scipts like you do in "normal" queries.

2.3. Release 6.5.1 - 23 Jun 2005

  • /SG/ Fixed Bug when using GetPChar() Result of GetPChar() points to unallocated memory.
  • /SG/ Fixed Bug #966217 ZeosDBO (Ado) update problem with TZUpdateSQL
  • /SG/ Fixed Bug #972461 Username property not refreshed if changed in login box
  • /SG/ Fixed Bug #1013579 Problem with TZTable refresh method
  • /SG/ Fixed Bug #1017034 IProviderSupport - PSUpdateRecord
  • /SG/ Fixed Bug #1030721 Firebird 1.5 Read Only Database on CD
  • /SG/ Fixed Bug #1035896 ZQuery's FieldsEditor brings diff. types for the same field
  • /SG/ Fixed Bug #1036906 Login Dialog unstable appearance
  • /SG/ Fixed Bug #1075822 Wrong results for lookup fields
  • /SG/ Fixed Bug #1076975 open cursors in Oracle
  • /SG/ Fixed Bug #1084237 Change data when Dataset.State = dsBrowse
  • /SG/ Fixed Bug #1086415 Exception when deleting record with ClientDataSet
  • /SG/ Fixed Bug #1086575 Strange behaviour Zeos - DBLookUpComboBox
  • /SG/ Fixed Bug #1113306 CreateStatement and Properties
  • /SG/ Fixed Bug #1113393 WideString Updates
  • /SG/ Fixed Bug #1116986 MySQL:zeos doesnt assign default '0000-00-00' to Date Fields
  • /SG/ Fixed Bug #1118495 TZAbstractRODataset.RereadRows;
  • /SG/ Fixed Bug #1124098 CaseSensitive locate on WideString fields
  • /SG/ Fixed Bug #1126163 Filter issues
  • /SG/ Fixed Bug #1154489 AV error when opening a DML with a TZQuery using doSmartOpen
  • /SG/ Fixed Bug #1164443 Incorrect TZPostgreSQLNotify definition
  • /SG/ Fixed Bug #1167367 Access violation on large string fields.
  • /SG/ Fixed Bug #1173358 MySQL Date/Time bug + Fix
  • /SG/ Fixed Bug #1186833 Firebird 1.5: unsupported datatype
  • /SG/ Fixed Bug #1214110 Startup failing if compiled with "Full Boolean Evaluation"
  • /SG/ Fixed Bug #1219599 SetFieldData for ftString don't refresh
  • /SG/ Fixed Bug #1219718 ADO TDateTime parameter wrong type
  • /SG/ Fixed Bug #1224963 TZTable's TabeleName Property - not list with ADO protocol
  • /SG/ Added const "ZEOS_VERSION" to ZClasses and added property "Version" to TZConnection.
  • /SG/ Added support of fkInternalCalcFields for ZEOS datasets.
  • /SG/ Added property "DesignConnection" to turn off active design time connections during runtime, automatically.
  • /SG/ Added PropertyEditor for TField-properties in several components.
  • /SG/ 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.

2.4. 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

2.5. 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.

2.6. 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 TZConnectioncomponent.
  • /SS/ Fixed Bug#957126 Incorrect processing of empty strings in default values in MySQL driver. Thanks to Alex/ghost3k.

3. Changes in Release 6.1

3.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.

3.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.

3.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

3.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.

3.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

4. Changes in Release 6.0

4.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.

4.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.

4.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.

4.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

4.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.

4.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.

4.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.

4.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.

4.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

4.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.

4.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.

4.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

4.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.

4.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.

4.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

4.16. Release 6.0.0 - 25 January 2003

  • Released the first alpha version with support for MySQL, PostgreSQL, Interbase 6+ and MS SQL.
This document was created using the >e-novative> DocBook Environment (eDE)