Subject IBO 5.9.9 Build 2784 released!

I recently released the latest of IB Objects to all download areas.  Here is an excerpt from the release notes:

7/17/2018 Version 5.9.9 [Build 2784]

I fixed a bug when handling a Filter setting with an EXISTS() clause with something AND'd with it.


I fixed a problem with the UpdatesPending property to tell how many cached updates are waiting to be applied.


I fixed a bug in the logic that compares the values of single or double floating point variant values.  I wasn't properly taking the Unassigned state into account when comparing values.  It was taking one of them as Unassigned and one of them as 0 and deeming them equal when they aren't.


I fixed a bug where a cached inserted record was getting removed from the buffer when calling InvalidateRowNum() or Refresh().


I made the TIB_Session.CheckForReservedTokens property published.


I added TIBOBytesField and TIBOVarBytesField in order to work around a problem with the Delphi classes they inherit from.  It was having issues when converting the bytes data to data represented as string data.  I had to do this to make older versions of Delphi consistent with newer versions of Delphi.  When storing raw bytes data in a widestring it actually uses the double byte character to store two bytes of the raw data.


I enhanced the behavior of the JoinLinks property so that if it is changed it will cause the query to be unprepared and prepared again so that the impact to this property will be properly distributed to all of the internal cursors of the TIB_Query and TIBOQuery components.


I improved TIB_Query and TIBOQuery so that if it was prepared but the SQL has been invalidated, by calling the InvalidateSQL method, and the Open method is called it will detect this and do a reprepare prior to opening the query.


I improved the process of handling the OnNewRecord event and the appending of records.  In some cases it was possible for the CheckBrowseMode method to cause things to re-enter the posting of the new record.

I fixed a problem with bsfBeforeEdit and bsfAfterInsert BufferSynchroFlags settings.  In some cases it wasn't synchronizing the values in the record as it should.


I improved datatype conversion between double datatype and the timestamp datatype.


I improved the behavior of getting the default value of columns so that it will handle NULL values more appropriately.  I also improved the behavior of GeneratorLinks so that it will go ahead and apply a new value from the generator if the column has the value of a declared default value instead of only doing so when it is a NULL value.

I enhanced the behavior of the ordering columns in the TIB_Grid control.  It now handles the use of OrderingLinks that have different columns than are in the OrderingItems as it used to before the recent changes enhancing the ordering mechanisms to use up to 3 columns in the horizontal dataset refinement feature.

I enhanced the TIB_CGrid control so that it will behave better when a dataset is navigating through records and the EOF or BOF position is hit.  The control's navigation used to take the dataset to EOF or BOF and then it would scroll back.  Now it recognizes that it would go to EOF or BOF and it simply doesn't scroll away from the current record.


Kind regards,

Jason Wharton