Subject | Re: [IBO] Test suite? |
---|---|
Author | Geoff Worboys |
Post date | 2010-03-17T22:52:11Z |
Carlos H. Cantu wrote:
integrated a fairly major change... something I discussed
with Jason back in Feb 2008.
This change deprecates all the old Fields* properties, the
ColumnAttributes property, Generators and DefaultValues
and replaces with a single central "ColumnAttribs" property
that implements all those features in a class structure rather
than using TIB_StringList.
The changes include the ability to automatically upgrade all
existing DFM definitions... but obviously cannot automatically
adjust people's code (if people were loading the old string
lists from code as I used to do then that code will need
updating - not difficult but not automatic either). In Delphi
prior to D2007 the old properties have to stay published to
support the auto-upgrade process (but are not used), in later
versions the old properties can be properly hidden.
The reason for this change is optimisation. I had some very
large queries (hundreds of fields) that were taking a very
long time to prepare. By replacing the old string-list
processing with a dedicated class I cut prepare time down to
around 10%-20% of the old code. (If you use IB_Connection
FieldEntryTypes of Domain and/or SQLType you get the bigger
drop.)
On smaller, more typical, queries the drop is not as noticeable
but still definitely there. Many of my more complex forms have
become much more responsive since this change, and the reports
with the big queries all work much better... I simply cannot
go back to the old string-list system, which is why this latest
project has incorporated the change.
The problem for other developers is that this change may
complicate their upgrade process a bit.
--
Geoff Worboys
Telesis Computing
> [...] in a way that the efforts of Geoff will not get lostOne... issue that may exist is that in my update I have
> or end up only in his "private branch" of IBO, so the
> product will become more active and evolve faster.
integrated a fairly major change... something I discussed
with Jason back in Feb 2008.
This change deprecates all the old Fields* properties, the
ColumnAttributes property, Generators and DefaultValues
and replaces with a single central "ColumnAttribs" property
that implements all those features in a class structure rather
than using TIB_StringList.
The changes include the ability to automatically upgrade all
existing DFM definitions... but obviously cannot automatically
adjust people's code (if people were loading the old string
lists from code as I used to do then that code will need
updating - not difficult but not automatic either). In Delphi
prior to D2007 the old properties have to stay published to
support the auto-upgrade process (but are not used), in later
versions the old properties can be properly hidden.
The reason for this change is optimisation. I had some very
large queries (hundreds of fields) that were taking a very
long time to prepare. By replacing the old string-list
processing with a dedicated class I cut prepare time down to
around 10%-20% of the old code. (If you use IB_Connection
FieldEntryTypes of Domain and/or SQLType you get the bigger
drop.)
On smaller, more typical, queries the drop is not as noticeable
but still definitely there. Many of my more complex forms have
become much more responsive since this change, and the reports
with the big queries all work much better... I simply cannot
go back to the old string-list system, which is why this latest
project has incorporated the change.
The problem for other developers is that this change may
complicate their upgrade process a bit.
--
Geoff Worboys
Telesis Computing