Subject Re: [IBO] development
Author Hans
You are right again :)

soFromBeginning Offset is from the beginning of the resource.
Seek moves to the position Offset. Offset
must be >= 0.
soFromCurrent Offset is from the current position in the resource.
Seek moves to Position + Offset.
soFromEnd Offset is from the end of the resource.
Offset must be <= 0 to indicate a number of
bytes
before the end of the file.

However, like you said, it seems to make no difference, and of course
I checked the copied logo blobs, and they look identical before and
after the copying..

Now we have TIB_DataPump the fastest by about 30% over
FIBPlus with the assign loop
for i := 0 to FieldCount - 1 do
begin
FIBQuery_New.Fields[i].Assign(FIBQuery_Old.Fields[i])
end;
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 :)

Best Regards
Hans

----- Original Message -----
From: "Geoff Worboys" <geoff@...>
To: <IBObjects@yahoogroups.com>
Sent: Tuesday, March 23, 2010 5:35 PM
Subject: Re: [IBO] development


> Hans wrote:
>> Since D5 doesn't seem to have a definition for soEnd,
>> I replaced
>> tmpRead.Seek(0, soEnd);
>> with
>> tmpRead.Seek(0, soFromBeginning);
>
>> Hoping this is the same, now IBOjects using TDataPump
>> is quite a bit faster.
>
> Use: tmpRead.Seek(0, soFromEnd);
> instead (the soEnd variation is for and Int64 overload, I am
> pretty sure D5 should have soFromEnd).
>
> The line is actually redundant since IBO will currently load
> the entire blob as part of CreateBlobStream anyway. I
> included the line mostly as a symbolic/informative "read
> through to the end" instruction (ensuring the buffer in the
> stream blobnode is complete)... the theory being that if
> blob behaviour is altered later so that it does not read the
> entire data during Create that this command should cause it
> to do so.
>
>
> Pleased you see an improvement too. This problem really only
> hits against large blobs (only if most are well over 61440
> bytes) - and even then only obvious in transfer situations like
> you demonstrated. I do have a few large-blob databases... but
> without a comparison it was difficult to see that the problem
> existed.
>
> --
> Geoff Worboys
> Telesis Computing
>
>
>
> ------------------------------------
>
> ___________________________________________________________________________
> 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
>
>
>