Subject Re: [IBO] development
Author Geoff Worboys
> However TIB_Cursor with the same assign loop is like molasses.

> This must affect other operations too and I wonder if some
> little improvements could be found here and there, alike the
> Blob speedup :)

I expected, after applying the blob fix, that the fibplus and
the tib_cursor solutions to be quite similar for all those
tables with a reasonable amount of data... that seems to be
what I see here. (I do believe there are some distinct
improvements possible in Column.Assign but I am not seeing a
large impact (relative to FIBPlus) from that here.)

I do expect your empty tables to be slower in IBO - because you
have to prepare the source cursor to find it empty and prepare
is slower in (your version of) IBO.

Otherwise, for non-empty tables, the biggest difference will be
to use parameterised insert as demonstrated by Minoru.

See the post from Minoru and my response. My response uses a
TIB_DQL to do a parameterised insert (Minoru just used the
existing TIB_Cursor from my original code - but TIB_DSQL is
a more appropriate choice for this style of DML execute).

[I know that Jason recommends the datapump but for such simple
and direct situations as yours I prefer a tib_cursor/tib_dsql
pair as per my response to Minoru.]

Also see the code posted by Minoru which generates the required
insert SQL from the source TIB_Cursor. Note that you can also
get the relation-name from the source cursor, in such a
simple case ACursor.Fields.RelationNames[0] on the prepared
cursor would do it.

(I imagine that even FIBPlus must have a component similar to
TIB_DSQL for executing parameterised DML... so I would expect
this latter benefit can be found in FIBPlus too.)

--
Geoff Worboys
Telesis Computing