New Features and Bug Fixes in Version 4.0 of ODBCExpress
=========================================================
New Features
------------
New features introduced since ODBCExpress 3.0:
1. Introduction of the TOEDataSet, which allows you to make use of the Delphi 3
and other compliant 3rd-party data-aware controls (such as Orpheus) with
ODBCExpress.
2. Blob Deferral functionality, which allows you to fetch blobs from the
database only when (and if) they are referenced. The CellMemory property is
also implemented to allow you to retrieve the blob columns of a multi-row
fetch by way of blob deferral.
3. New TimeStamp routines allows you to convert between the TTimeStamp, TDate
and TTime ODBC records.
4. The Tracing property allows you to do ODBC call tracing from within
ODBCExpress, for ODBC Driver debugging purposes.
5. The BindBookmarks property is added, which gives you the choice of binding
bookmarks as part of the result set to speed up bookmark retrieval, or to
retrieve them as needed using less resources.
6. The BlobCol method is added to allow you to explicitly bind a column to a
specific data type, if ODBCExpress can't detect the correct column type from
the ODBC Driver to perform automatic binding.
7. The NumRows method returns an estimate of the number of rows in a result
set, the NumRowsAffected method returns the number of rows affected by an
insert, update or delete SQL operation, and the new ColCount and RowCount
properties returns the values from the NumCols and NumRows methods
respectively.
8. The ColNull/CellNull properties can be used to determine if a column is null
and set a column to null for positional updating. The ColIgnore and
CellIgnore properties can be used to set the columns to be ignored during
positional insert and update operations. All four these properties replace
the need to make use of the ColSize and CellSize properties in previous
versions of ODBCExpress to achieve the same results.
9. The WinHandle THdbc property returns the window handle used by the ODBC
dialog boxes and the WinParent property allows you to override the default
window handle used by these dialog boxes.
10. All the Henv properties are removed and replaced by the global THenv
variable, GlobalHenv.
11. The Connected property allows you to establish a connection at design time.
12. In the evaluation versions the ODBCExpress registration screen doesn't
appear anymore when you load Delphi.
13. The TOEGrid user navigation is improved.
14. The TOEGrid design time population is removed since it had no effect at
run-time and just caused unneccesary confusion about its purpose.
15. The MoreResults method is iplemented to allow you to make use of multiple
result sets returned with a single execute. For this reason the SQL
Property Editor is also modified to allow you to build multiple SQL
statements using the SQL Builder.
16. The ODBCExpress units are re-structured to optimize the executable size. A
registration unit is also added which contains most of the property editor
code to further optimize your application code.
17. The BindNull/BindNulls methods allows you to bind in a null value for a
parameter in a SQL statement.
18. The BulkParamSize method is added to allow you to modify the size of
specific rows in a bulk parameter.
19. The PrimaryCols and IgnoreCols methods are added to the THstmt, which allow
you to specify all the primary colums and all the columns to be ignored
using one call each.
20. The Blob Placement property allows you to force a blob to be inserted in
parts or at one go at the database, if ODBCExpress doesn't detect this
setting from the ODBC Driver automatically.
21. The OnStatement event allows you to view/modify SQL statements build by
Level 3 SQL Generation.
22. The Core property is now settable to force whether Core parameter binding
must be done or not internally, if incorrectly detected from the ODBC Driver
by ODBCExpress.
New features which didn't exist in the Beta versions of ODBCExpress 4.0:
1. The Target Property and Property Editor is added which now contains the
TargetTable, PrimaryCols and IgnoreCols properties.
2. The OnStatement, OnInsert, OnUpdate, OnDelete and OnRefresh events are added
to the TOEDataSet.
3. The TOEDateTime data-aware control is modifed to include a checkbox to
distinguish between null and non-null date/time columns.
4. The TSQLDataSet descendant is included which provides a TStrings SQL
property instead of the default String SQL property.
5. The TOEDataSet prepare/bind once and assign/execute multiple times
functionality are implemented, instead of re-preparing and re-binding during
each execution.
New features in ODBCExpress 4.01 (Service Release 1):
1. A StoredProc property is added, which allows you to select a stored
procedure to be executed. The Params property will also automatically be
populated with the stored procedure parameters.
2. The "@" character can now be specified as part of a parameter name in a SQL
statement. This is useful when using stored procedures.
3. The ability to execute a SQL statement without preparing it is added to the
THstmt component. When a SQL statement is not prepared and the
THstmt.Execute method is called, the SQL statement will directly be executed
at the database without preparing it.
4. The Prepared and Executed properties are added to the THstmt component to
allow you to keep track of these two states of a SQL statement on the THstmt
component.
5. The TwwOEDataSet descendant is included which adds the necessary properties
to the TOEDataSet to allow you to use the InfoPower data-aware controls with
ODBCExpress.
6. The OnFilter event for the TOEDataSet is implemented, which allows you to
provide record filtering to the TOEDataSet, if the filtering can't be done
as part of the SQL statement.
7. The TOESchema columns editor now allows you to only select from a list of
DataSource-specific column data types, if connected to a DataSource. This
prevents you from selecting column types not supported by the ODBC Driver.
8. A Close method was added to the THstmt component to allow you to close the
result set of a THstmt at any time and release any locks kept by the result
set.
Bug Fixes
---------
The following bugs, which existed in ODBCExpress 3.0, is now fixed in
ODBCExpress 4.0:
1. A BindMemory (BindBinary, BindText) problem which made it impossible to bind
an empty stream. The column will now automatically be set to null when the
stream is empty.
2. A ParamSize bug which didn't allow you to set the value of a blob column to
be null.
3. A DoUpdate bug which only updated the first blob in a result set.
4. A problem where the TargetTable property was reset each time DoUpdate was
called.
5. A problem in which the Connect method raised an exception with some ODBC
Drivers when a certain soft error occurred, even though the connection was
established.
6. The setting of the global ShortDateFormat variable in the initialization
section of the Extgrid unit was removed.
7. A bug in the Execute method in which the statement handle wasn't being reset
when the cursor library is used.
8. A TOEGrid problem in which a jump-back effect was caused when you have
goRowSelect in Options, since the grid cursor didn't move with the visible
grid window.
9. The SQL Builder generated the "AS" SQL clause incorrectly.
10. A ColString/CellString problem which, when retrieving an empty blob as a
string, caused an access violation.
11. The Float formating style couldn't be used for integer columns.
12. The BindString method now works for long strings and blob fields, provided
that the ODBC Driver used returns False for the THdbc.Core property.
13. A DoUpdate problem in which the null/ignore flags of columns were not
incorporated.
14. Some TOEGrid combo box behaviour problems when pressing the up/down key in
the combo box or when using an editable combo box in the grid.
15. A TOEGrid bug in which you got a "list index out of bounds" error when there
wasn't exactly one fixed column in the grid.
The following bugs, which existed in the Beta versions of ODBCExpress 4.0, is
now fixed in ODBCExpress 4.0:
1. A form stream bug which prevented access to the SQL Builder.
2. The error suppression of the TOEDataSet when browsing a result set was
fixed.
3. A Locate/Lookup problem in which it expected a variant array instead of just
a variant as a value.
4. The disappearing updates/deletes problem in which rows just updated or
deleted in the data-aware controls connected to a TOEDataSet weren't
reflected by the data-aware controls. Disappearing inserts is still a
problem, caused by the implementation of the virtual Delphi TDataSet.
5. The Table property should now be automatically populated when used with
virtually any ODBC Driver.
6. A problem which didn't allow you to insert blob parameters using the
TOEDataSet.
7. The RowCount property didn't work with stored procedures.
The following bugs, which existed in ODBCExpress 4.0, is now fixed in
ODBCExpress 4.01 (Service Release 1):
1. Design time problems which caused "function sequence" or "operation invalid
at this time" errors changing some of the TOEDataSet properties when the
TOEDataSet was or is Active.
2. A Locate/Lookup problem which caused the application to hang if no match was
found, as well as a problem which caused the result set cursor to scroll as
the search was performed.
3. The RowCount property didn't work with SELECT statements which contained
"ORDER BY", "GROUP BY" or "UNION" clauses.
4. TOEDataSet.BookmarkValid now returns True if a bookmark is non-null, and
TOEDataSet.CompareBookmarks not return -1, 0 or 1 depending on whether the
first bookmark value is physically smaller, equal or greater than the second
bookmark value.
5. A jump-back problem with the TOEDataSet.GotoBookmark method which cancelled
out the functionality of the method is fixed.
6. A MoreResults problem in which the columns for the following result sets
weren't re-bound.
7. Calling StartTransact or setting the Core property didn't establish the
connection automatically.
8. Incorrect generation of Level 3 SQL Generation statements when using a
multi-part primary key is fixed.