Subject AW: [IBO] IBO version 4.5 - Could you supply change list?
Author Dirk Schiffler
Hi Jason,

where can I find the IBO Version 4.5?
It's not in the download area of the community site.
Or is this version an internal version for you and not an official release?

Best regards
Dirk Schiffler
RCS GmbH

> -----Ursprüngliche Nachricht-----
> Von: Jason Wharton [mailto:jwharton@...]
> Gesendet: Donnerstag, 11. November 2004 17:35
> An: IBObjects@yahoogroups.com
> Betreff: RE: [IBO] IBO version 4.5 - Could you supply change list?
>
>
> > where can one access the full list of changes?
>
> Here is the information I have in my release notes so far:
>
>
> RELEASE NOTES for IBO Version 4.x
>
> 11/6/2004 Release 4.5 Ab
>
> I added the ability to save the contents of a BLOB column to a disk file
> in
> the IB_SQL FRM_Browse form.
>
> I pulled most of the include files from the IB_Controls.pas unit back
> into
> it so it is in one file.
>
> I fixed some additional issues with Params when using ClientDatasets.
>
> I fixed some parsing problems to do with FIRST and SKIP features of
> Firebird.
>
>
> 11/4/2004 Release 4.5 Aa
>
> I'm continuing to add in the code allowing the dataset to act as a treed
> structure. This is a work in progress.
>
> I enhanced the TIB_StringList component to enforce uniqueness at the
> IndexName level instead of the whole IndexName and IndexValue pair.
> Thus,
> if you have multiple entries that use the same name there is a potential
> problem now. Ideally there shouldn't be such cases in your code and now
> this change will prevent that from happening.
>
> When scrolling zero records it is possible to have the current record
> drop
> out. There was a little confusion surrounding whether or not the
> BeforeScroll and AfterScroll events should be triggered if nothing was
> scrolled to and in fact it was not triggering them. Now I made it
> intelligent enough to trigger them when the record will change when
> scrolling zero record places.
>
> Changes in IB_Grid.pas:
> { Jason Wharton
> }
> {
> }
> { I made it so that when using the mousewheel and attempting to
> scroll
> to }
> { the BOF or EOF row and there were current edits they would get lost
> due }
> { to a DataChange event being fired off because a scroll to the same
> w }
> { still considered a scroll, although the BeforeScroll and
> rScroll }
> { events may not be fired off causing the edits to be flused to the
> buffer.}
>
> The problem with a mouse up event causing a click when it wasn't really a
> click on the grid has been resolved. A mouse click event won't be
> registered unless there was also a mouse down event to correspond with
> it.
>
> When using embedded controls in the grid there was a problem when tabbing
> into and out of the grid. The embedded control wasn't always displaying
> correctly when first entering focus to the grid by tabbing to it. The
> embedded controls weren't always showing the correct color either.
>
> Fixed a problem with parameter value handling when using the MIDAS
> PSExecuteStatement() method. The values were not properly transferred to
> the new statement generated.
>
>
> 10/30/2004 Release 4.5 A
>
> Marco Menardi provided a fix for TIB_CurrencyEdit that had to do with a
> VK_DELETE KeyDown event being allowed when the control is ReadOnly.
>
> I fixed a problem with the TIB_LookupCombo control where the color scheme
> wasn't working correctly when the dataset was in search mode and the
> affected columns were tagged with the NOSEARCH option in the
> FieldsReadOnly
> property.
>
> The ability to have the TIB_Grid control double as a tree viewer has been
> started with continuing improvements to come over the next few releases.
> The changes impacted the buffering data structures to some extent as well
> causing the TIB_Query component to be impacted some to act specifically
> as a
> dataset to service records in a treed configuration.
>
> TIB_Dataset has been enhanced with various optimizations surrounding the
> use
> of field maps which store references to columns on both sides of
> KeyLinks,
> KeyDescLinks, MasterLinks and MasterParamLinks relationships. This is so
> that it is no longer necessary to repeatedly use FieldByName() calls
> which
> are expensive computationally. This should make many operations using
> these
> relationships run much snappier.
>
> 10/27/2004 Sub-Release 4.3 Ac
>
> I added the ability to deal more robustly with CachedUpdates with the
> TIBODataset components by adding a new event called OnCheckCachedInsert:
> TIBOCheckCachedInsert. This event allows you to identify if cached
> inserted
> records in the buffer are associated with the various different master
> records as they are scrolled though. This makes it so that cached
> updates
> can be fully used in a master-detail context. The only glitch left is
> that
> they will always show up first in the sort order of the detail dataset,
> but
> they are flagged as unsorted so that they don't throw off any other
> algorithms relying upon the dataset being sorted.
>
> I enhanced the DisplayFormat of TNumericField instances when they are
> based
> on an underlying integer storage so that they will consistently show as
> whole numbers.
>
> I fixed a problem when combining the logic of OnFilterRecord and
> calculated
> fields during the OnFilterRecord event. It was returning NULL when it
> should be returning valid data for a column's value. This only had to do
> with BLOB fields when in the OnFilterRecord context. Thanks to Ed
> Dressel
> for isolating and assisting with the resolution of this problem.
>
> I fixed a bug in the handling of TField objects in the
> InternalSetFieldData
> method. I thought I was checking the field's ReadOnly property to
> prevent
> the setting when appropriately but due to the way the variable reference
> scope was it was mistakenly reading the dataset's ReadOnly property
> instead.
> Thus, I was allowing fields marked as read only to be modified. It will
> now
> raise an exception as it should.
>
> I made various enhancements to the core of the buffering structures in
> IB_Session.pas. These mostly had to do with correcting some problems
> with
> CachedUpdates. Some very significant problems were fixed that took me
> quite
> some time to root out. Many thanks to Carlos Cantu who has persisted
> with
> me and worked dilligently with me to solve these problems and provide
> testing and feedback.
>
> Changes in IB_Components.pas unit:
> { Jason Wharton
> }
> {
> }
> { I eliminated the record re-fetch operation on an Insert or Edit
> when
> }
> { blob column is involved if there are no KeyLinks defined. This
> ids }
> { the buffer getting wiped out because it is unable to fetch
> t }
> { knowing what the KeyLinks
> }
> {
> }
>
> I added BeforeSavePoint and BeforeLosePoint events to the transaction
> components.
>
> I moved the event BeforeConnect of the connection component to fire after
> the processing of the Login so that the BeforeConnect event is just prior
> to
> the call to the API to obtain the connection.
>
> I enhanced the database level ApplyUpdates() method so that it would
> process
> Detail datasets prior to master datasets.
>
> I fixed a problem with the Locate() method such that when using it on a
> detail dataset of a master-detail relationship the detail dataset was
> getting an extra parameter added to the internal locate cursor when it
> performed the locate on the server that caused it to fail.
>
> I changed the order of calling the AvterOpen event in relation to the
> initialization of some of the internal RowNode pointers so that they were
> properly interpreted based on the new status of the dataset rather than
> any
> former, potentially bogus values.
>
> I solved a logic problem in the incremental searching routine where it
> wasn't coordinating the CallbackInitTick setting just right. When a
> cursor
> reaches the end of the dataset it sets this timing indicator to 0, which
> could happen right in the middle of incremental searching processing.
> I've
> now made the incremental searching logic deal with it robustly.
>
> I solved a problem with the handling of NULL columns in incremental
> searching. NULLs are sorted to the end of the dataset and when I was
> running into the NULL area it was making a comparison based on a blank
> value
> rather than a NULL and thinking that it had gone too far in the dataset
> and
> that the search should be terminated, thus preventing it from finding
> targets near the boundary where the NULL values begin. This is because I
> have an algorith that will skip ahead records by 10, 100 or more records
> (for having the FetchWholeRows false scenario) so that they can approach
> the
> efficiency of a bracketed search in a linear, mostly unbuffered
> dataset/buffer.
>
> I fixed a bug in the handling of the time portion of the
> TIB_DateTimePicker
> control.
>
> I fixed a problem with the base class for service applications. The way
> the
> ShutDown logic was causing the host machine to terminate an OS shutdown.
> The service app would have to be stopped manually in order to proceed
> with
> an OS shutdown which caused quite a bit of hassles.
>
> { Mark Pickersgill
> }
> {
> }
> { Added Spacing property to autolabel to provide more control over
> }
> { pixel spacing between the control and the
> }
> { Added new albLeftCenter and albTopCenter Kind options to
> }
> { vertically and horizontally centered
> }
> { Added TrimX and TrimY to the Options
> }
> { Added Font, Transparent and Color
> }
> The font property above will more than likely be changed to FontColor,
> FontSize, etc. to conserve resources.
>
>
> 3/13/2004 Sub-Release 4.3 Ab
>
> Changes in IB_Components.pas unit:
>
> { Steven Beames
> }
> {
> }
> { Changed csLoading to csReading in functions
> Statement.SysPrepare }
> { and TIB_Dataset.SysOpen to allow a custom component to initialise
> owned }
> { TIB components in its Loaded() method. (Based on a suggestion
> }
> { Mahris
> }
>
> { Christopher Hart
> }
> {
> }
> { Updated support for Boolean Assignment. Was a problem with
> TIB_Checkbox }
> { and display of Boolean
> }
> { Updates applied to TIB_COLUMN.GetAsVariant and
> TIB_COLUMN.SetAsVariant. }
>
> I added the option for password storage to TIB_Connection.PasswordStorage
> property of psParams which simly allows for storing the password in the
> Params property in plain text.
>
> I added a new dataset refresh action type called raKeepDataPosOrRowNum
> which
> allows a dataset to try and refresh using a Bookmark but if it is not
> able
> to find the bookmark to then revert to refreshing to the previous row
> number
> rather than just going to the top of the dataset.
>
> I solved a problem with master-detail data change event triggering
> getting
> caught in a perpetual loop due to the possibility of data types not
> lining
> up in such a way that allows their values to exactly match. This is a
> rare
> and special case that really took me a long time to get figured out, but
> in
> short, IBO is now bullet proof when it comes to master-detail linking
> with
> the interruptible fetching of records being in the mix. This is pretty
> deep
> stuff, but the gist of it is, if you have a master dataset and you are
> clicking to scroll from one record to the next you can get mouse click
> events handled before the detail dataset has refreshed its records based
> on
> the new master record scrolled to. Thus, you could go whipping through
> master records and then the detail dataset would have to untangle where
> this
> weird callstack with windows message processing taking place. Now, IBO
> will
> always know exactly how to untangle this and have the detail dataset sync
> up
> with the master even if much of the work it would normally have done was
> bypassed. Thus, this is a very unique and powerful feature of IBO
> allowing
> much snappier interfaces, to be perfected. Something I am rather proud
> of
> accomplishing and hope you will enjoy.
>
> I added a new translated constants file for German, Portugese and
> Russian.
>
> I fixed the problem with the menu on the TIB_Script editor taking the
> DELETE
> keypress away from the editor control.
>
> I added the feature to show NULL values in the FRM_Browse form so that it
> is
> easy to tell between a NULL value and a blank value. This is also due to
> a
> new feature added to the TIB_Grid control to show nulls.
>
> Consideration of PreventDeleting was added to the logic for determining
> whether or not the inplace editor for the TIB_Grid goes into edit mode or
> not.
>
> I improved the handling of the BaseTransaction in the base class form
> IBF_Base that underlies all the forms of the component editors and dialog
> forms. It was not using the DefaultTransaction of the associated
> connection
> when an explicit Transaction is not provided. This added behavior made
> sense to do since it had the connection reference, which may have a
> default
> transaction reference to make use of.
>
> The ability to explicitly assign a TIB_Session reference to a TIBODataset
> component was added. The IB_Session property was made writable.
>
> There was a problem with the handling of the field definition of BCD
> columns
> that needed to be addressed. It now follows explicitly what is defined
> in
> the database to ensure the correct precision is followed in all cases,
> not
> just the most typically used ones.
>
> The TIBODataset.CanModify logic was enhanced to include consideration of
> the
> EditSQL, InsertSQL and DeleteSQL properties as well as the OnUpdateRecord
> and UpdateObject references with RequestLive.
>
> I added the option to optionally display FieldTypeInfo in the
> TIB_StatementGrid.
>
> I enhanced the SchemaCache so that it would take into consideration the
> explicit PRIMARY KEY constraint type instead of relying upon the naming
> concention of RDB$PRIMARY.
>
> The usage of macro substitution has been impacted such that the BeginChar
> and the EndChar are explicitly spelled out with a string rather than
> being
> just a char that was doubled. This will add to the flexibility for the
> future, although it will likely break existing implementations.
>
> A destination stored procedure property was added to the TIB_Import
> component so that data can be imported via a stored procedure instead of
> just inserted into a table.
>
> The AbortExecuting method of the TIB_Process component was overrided in
> TIB_DataScan so that fetching in the dataset will be aborted properly.
> This
> will make usage of the TIB_DataPump more friendly.
>
>
>
>
> _________________________________________________________________________
> __
> IB Objects - direct, complete, custom connectivity to Firebird or
> InterBase
> without the need for BDE, ODBC or any other layer.
> _________________________________________________________________________
> __
> http://www.ibobjects.com - your IBO community resource for Tech Info
> papers,
> keyword-searchable FAQ, community code contributions and more !
> Yahoo! Groups Links
>
>
>
>
>
>
>
>



__________________________________
Die E-Mail wurde auf Viren überprüft
AVK MailGateway für MS Exchange Server
RCS GmbH Finsterwalde/Massen
Version: AVK 15.0.980 vom 12.11.2004
Virus news: www.antiviruslab.com