New Features and Bug Fixes in Version 4.54 of ODBCExpress
=========================================================
New Features
------------
New features introduced since ODBCExpress 4.53:
1. The following new functionality is added to the TOEDataSet:
- The TFieldDef.Required property is implemented (in addition to the
DataType, Precision and Size properties).
- If Editable is set to True and an updatable concurrency is required, the
concurrency is changed accordingly.
- Current-row refresh functionality is fully implemented via the Refresh
method. This differs from the BDE's implementation of the Refresh method
which applies to all the visible rows.
Bug Fixes
---------
The following bugs, which existed in ODBCExpress 4.53, are now fixed in this
version:
1. The following problems which existed with the handle components are fixed:
- A blob re-fetching problem occurred with the CellMemory property and a
blob-fetching problem occurred with the CellString property.
- String, binary and date/time precision problems existed with some ODBC
drivers such as dBase and FoxPro.
- The RowsFetched property did not return the correct value for some ODBC
drivers (e.g. MS Access) when a prepared statement was re-executed.
2. The following problems which existed with the TOEDataSet are fixed:
- Deferred blob fetching did not work correctly.
- A stored procedure SQL generation problem when the stored procedure
contained no parameters.
- A problem where numeric fields retrieved via some ODBC drivers (e.g.
Oracle) were incorrectly detected as currency fields.
- The design-time parameter editor sometimes caused an "invalid argument to
date encode" error when used together with date/time parameters.
- A problem in which refreshing a row with its current values at the
database did not work if the row was already modified in the DataSet.
- Some unnecessary calls to the Refresh method after a Cancel or Delete
operation were made.
- The MoveAbsolute(0) case was not handled.
- A problem with the initial size of a parameter caused "invalid parameter
size" errors with some ODBC drivers. This problem still exists with some
ODBC drivers in certain cases, but can be avoided or can be attributed to
an ODBC driver implementation problem.
- A problem with the parsing of a table name existed when the table name was
the first element of a new line in the SQL property editor.
- The AutoCalcFields property was not exposed.
3. The following problems which existed with the TOEQuery are fixed:
- A default-value problem where the value of LocateInsert was always True
and could only be set at run-time and not at design-time. The default
value of LocateInsert is now the same as for the TOEDataSet, which is
False instead of True.
4. The following problems which existed with the non-visual components are
fixed:
- A problem in which some ODBC drivers (e.g. SQL Anywhere and Interbase)
returned tables of all types (including system tables), no matter what the
TableType setting of the TOECatalog was. This fixes the tables listed by
the table name property editors of all the other ODBCExpress components as
well.
- A "list index out of bounds" error sometimes occurred when using the
WriteToFile functionality of the TOESchema property editor and an empty
top row sometimes appeared after retrieving tables or views into the
property editor.
Comments
--------
Some important comments on the new version:
1. Please report any problems experienced with this new version to
support@odbcexpress.com so that it can be addressed as soon as possible.
2. Apply the latest Delphi 3 or C++Builder 3 Update Pack.
3. Auto-increment fields work fine with the TOEDataSet component and will
automatically be ignored as part of the column list during inserts and
updates. If they also form part of the primary key, they will automatically
be used as part of the where-clause of updates and deletes, if necessary.
4. The fields used by LocateInsert are the primary fields by default, but can
be changed to include all the fields or a subset of the fields using the
Target property.
5. Closing and re-opening the TOEDataSet sometimes causes incorrect behaviour,
such as empty result sets, with certain ODBC drivers (e.g. Oracle and SQL
Anywhere). If this occurs call the UnPrepare method between the Close and
Open calls. Of course this will cause the SQL statement to be re-prepared
when you re-open the DataSet, but should fix the behaviour problems.