Subject | RE: [IBO] Build 52 released. |
---|---|
Author | IBO Support List |
Post date | 2012-08-25T01:59:58Z |
The release notes say version 5.0.2 because I am working primarily in 5.0.2
for development. But, I did go ahead and back-port all changes to 4.9.14.
FYI: I am very near the point where I will stop automatically back porting
new development.
I highly encourage people to start working with the IBO 5 sources. If you
have a license to version 4.9.14, is all you have to do is request access to
them and I give you access to IBO 5 for you to use immediately.
If you are more interested in having a version of IBO that remains stable,
then stay on IBO 4.9.14 because I will only be patching it for significant
bugs that cannot easily be worked around.
Thanks,
Jason
-----Original Message-----
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On Behalf
Of kylixguru
Sent: 24 August 2012 07:55 PM
To: IBObjects@yahoogroups.com
Subject: [IBO] Build 52 released.
All,
Here is the release notes of build 51 and 52.
8/21/2012 Version 5.0.2 [Build 52]
I fixed a problem with duplicate parameters of the same name not being
resolved to a single parameter when they were of type DATE or TIME. They are
all now resolved to a TIMESTAMP parameter so that they will also resolve
with other parameters of type DATE, TIME or TIMESTAMP if they are given the
same parameter name. I also made it so that CHAR columns will coerce to
VARCHAR if they are in a duplicate situation together. It will also make the
length go to the longest of the two being combined.
I fixed a problem having to do with executing statements during the
BeforeDisconnect event of the connection. I was preventing new transactions
from starting if the connection was in csDisconnectPending state. I softened
this up so that it is possible to do things in the BeforeDisconnect event
without causing a problem.
I enhanced the handling of BufferSynchroFlags so that it will coordinate
with the use of the RETURNING clause in DML statements more accurately and
efficiently. If you include all of the fields in the query in the RETURNING
clause of your custom InsertSQL or EditSQL then you can avoid having to have
the record refetched because it will know all of the needed information was
in the returned values. This change also cured a blind spot where the record
wasn't being refetched (synchronized) as it was in the past before I
included support for the RETURNING clause. Before it just looked to see if a
row was returned and if so then in some cases it would wrongly suppress the
refetch. It assumed all values of interest were included in the RETURNING
clause.
I also improved the performance of using EditSQL and LockSQL so that it
won't refetch the record prior to executing the statement if these
properties are used. It now assumes you are operating on searched values
without the need of positioned updates that require an open cursor on the
server for editing. I also included very detailed tests for this in the
regression testing app.
I added a new protected property to the internal TIB_BindingCursor so that I
could keep accurate metrics in the regresion testing app to make sure IBO is
functioning as efficiently as possible. The property simply increments each
time a "QuickFetch" is performed and is called QuickFetchGen.
I reduced the number of calls to TIB_Connection.Characteristics in order to
try and improve performance.
I added in a check for exceptions during the
TIB_Statement.SysStoreParamValueLinks method so that it won't interrupt an
Unprepare or component destruction. If there is an error it will simply omit
that particular value that the error occurred on.
I enhanced the IB_SQL tool so that in the Browse form when looking at
Generators it will handle the character set variations better. In some cases
there were string truncation errors that prevented this from working
properly. This fix is only valid for Firebird because I made use of the
EXECUTE BLOCK statement to work around the issues.
I also improved the IB_SQL automated command-line ability to dump a database
via the DataDump feature. I added a new switch /path=<OutputDir> so that you
can determine where the files should be placed. I also made it so that you
can store the tables and columns you want excluded in a layout. You use the
switch /layout=<LayoutName> in order to tap into the settings associated
with that Layout. If your layout is in a group you can use this format
/layout=<GroupName>\LAYOUTS\<LayoutName> in order to access it. FYI: The
switch to tell it to do a data dump is /action=datadump. I also added the
ability to sort the fields in the export by their natural order instead of
in their alphabetical order.
I improved the logic to look for a failed connection errcode so that IBO
will respond more gracefully to failed or shutdown connections.
8/9/2012 Version 5.0.2 [Build 51]
I added in functionality to properly decipher the connection character set
when you are using the dbHandleShared property. I also enhanced the routines
that handle the CharSet to CharID conversions so that they will fall back on
the metadata information if necessary. They were also moved to the
SchemaCache class and out of the IB_Utils unit.
I put in a few changes to help optimize the performance when preparing
queries.
I fixed a bug in the full text search mechanisms when using a phrase search.
In some cases it wasn't finding matches it should have found due to the
handling of single quote characters.
I fixed a bug with SearchedEdits being set to false. It was getting a server
cursor in order to perform the update but in the process of doing that in
some cases it would override the new values you were trying to post to the
server. Now, it puts the updated fetch in the Old values buffer instead of
overwriting the values in the New values buffer.
I removed some code that Delphi 3 needed in handling integers. In some cases
it would turn an invalid value from the AsString property into -MaxInt
instead of raising an exception as it should.
I fixed a bug in Delphi 5 handling of variants in the FindKey() method. It
didn't handle the varInt64 type properly so I just cast it to a string and
then it worked as it should.
Enjoy,
Jason
for development. But, I did go ahead and back-port all changes to 4.9.14.
FYI: I am very near the point where I will stop automatically back porting
new development.
I highly encourage people to start working with the IBO 5 sources. If you
have a license to version 4.9.14, is all you have to do is request access to
them and I give you access to IBO 5 for you to use immediately.
If you are more interested in having a version of IBO that remains stable,
then stay on IBO 4.9.14 because I will only be patching it for significant
bugs that cannot easily be worked around.
Thanks,
Jason
-----Original Message-----
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On Behalf
Of kylixguru
Sent: 24 August 2012 07:55 PM
To: IBObjects@yahoogroups.com
Subject: [IBO] Build 52 released.
All,
Here is the release notes of build 51 and 52.
8/21/2012 Version 5.0.2 [Build 52]
I fixed a problem with duplicate parameters of the same name not being
resolved to a single parameter when they were of type DATE or TIME. They are
all now resolved to a TIMESTAMP parameter so that they will also resolve
with other parameters of type DATE, TIME or TIMESTAMP if they are given the
same parameter name. I also made it so that CHAR columns will coerce to
VARCHAR if they are in a duplicate situation together. It will also make the
length go to the longest of the two being combined.
I fixed a problem having to do with executing statements during the
BeforeDisconnect event of the connection. I was preventing new transactions
from starting if the connection was in csDisconnectPending state. I softened
this up so that it is possible to do things in the BeforeDisconnect event
without causing a problem.
I enhanced the handling of BufferSynchroFlags so that it will coordinate
with the use of the RETURNING clause in DML statements more accurately and
efficiently. If you include all of the fields in the query in the RETURNING
clause of your custom InsertSQL or EditSQL then you can avoid having to have
the record refetched because it will know all of the needed information was
in the returned values. This change also cured a blind spot where the record
wasn't being refetched (synchronized) as it was in the past before I
included support for the RETURNING clause. Before it just looked to see if a
row was returned and if so then in some cases it would wrongly suppress the
refetch. It assumed all values of interest were included in the RETURNING
clause.
I also improved the performance of using EditSQL and LockSQL so that it
won't refetch the record prior to executing the statement if these
properties are used. It now assumes you are operating on searched values
without the need of positioned updates that require an open cursor on the
server for editing. I also included very detailed tests for this in the
regression testing app.
I added a new protected property to the internal TIB_BindingCursor so that I
could keep accurate metrics in the regresion testing app to make sure IBO is
functioning as efficiently as possible. The property simply increments each
time a "QuickFetch" is performed and is called QuickFetchGen.
I reduced the number of calls to TIB_Connection.Characteristics in order to
try and improve performance.
I added in a check for exceptions during the
TIB_Statement.SysStoreParamValueLinks method so that it won't interrupt an
Unprepare or component destruction. If there is an error it will simply omit
that particular value that the error occurred on.
I enhanced the IB_SQL tool so that in the Browse form when looking at
Generators it will handle the character set variations better. In some cases
there were string truncation errors that prevented this from working
properly. This fix is only valid for Firebird because I made use of the
EXECUTE BLOCK statement to work around the issues.
I also improved the IB_SQL automated command-line ability to dump a database
via the DataDump feature. I added a new switch /path=<OutputDir> so that you
can determine where the files should be placed. I also made it so that you
can store the tables and columns you want excluded in a layout. You use the
switch /layout=<LayoutName> in order to tap into the settings associated
with that Layout. If your layout is in a group you can use this format
/layout=<GroupName>\LAYOUTS\<LayoutName> in order to access it. FYI: The
switch to tell it to do a data dump is /action=datadump. I also added the
ability to sort the fields in the export by their natural order instead of
in their alphabetical order.
I improved the logic to look for a failed connection errcode so that IBO
will respond more gracefully to failed or shutdown connections.
8/9/2012 Version 5.0.2 [Build 51]
I added in functionality to properly decipher the connection character set
when you are using the dbHandleShared property. I also enhanced the routines
that handle the CharSet to CharID conversions so that they will fall back on
the metadata information if necessary. They were also moved to the
SchemaCache class and out of the IB_Utils unit.
I put in a few changes to help optimize the performance when preparing
queries.
I fixed a bug in the full text search mechanisms when using a phrase search.
In some cases it wasn't finding matches it should have found due to the
handling of single quote characters.
I fixed a bug with SearchedEdits being set to false. It was getting a server
cursor in order to perform the update but in the process of doing that in
some cases it would override the new values you were trying to post to the
server. Now, it puts the updated fetch in the Old values buffer instead of
overwriting the values in the New values buffer.
I removed some code that Delphi 3 needed in handling integers. In some cases
it would turn an invalid value from the AsString property into -MaxInt
instead of raising an exception as it should.
I fixed a bug in Delphi 5 handling of variants in the FindKey() method. It
didn't handle the varInt64 type properly so I just cast it to a string and
then it worked as it should.
Enjoy,
Jason