Subject Re: [IBO] Problems in TIB_BlobStream with the last Beta - The Fix
Author Jason Wharton
> Problems which still remain to solve:
>
> 1. TIB_Events doesn't work
>
> The following code...
>
> procedure TdmoMain.ibdMainAfterConnect(Sender: TIB_Connection);
> begin
> ib_eMain.RegisterEvents; //ib_eMain is a TIB_Events instance
> end;
>
> crashes very badly with an AV in fbclient.dll. Definitely needs to look
> at.

Please look at IB_Events.pas around line 750 and make this change:

type
TIB_EventBuffer = array[0..IBO_MaxEvents - 1,
0..IBO_EventLength - 1] of ansichar; // Used to be
just Char.

This should fix it.



> 2. TIBODatabase.Password not streamed correctly .dfm
>
> Self explaining. There is also a bug report on Sf.net on the issue.

This was resolved with the Jumble String routines being made Ansi
explicitly.


> 3. A bunch of 'Record not found' exceptions (stack trace & code bellow)
> but the program seems to work ok because AFAIS these are located
> immediately after opening/refreshing the dataset so, anyway, the cursor
> is at the beginning. But anyway imho this shows a weak point in our
> bookmark engine.
>
> DB.TDataSet.GotoBookmark
> IBODataSet.TIBODataSet.Resync([rmExact..rmCenter])
> DB.TDataSet.Resync
>
> here is the code:
>
> procedure TIBODataset.Resync( Mode: TResyncMode );
> begin
> if Active then
> begin
> // It is important to prevent the Resync() process from being interrupted
> // by a callback. Rows should already be in the buffer but perhaps not.
> InternalDataset.BeginCallbackFreeze;
> try
> inherited Resync( Mode ); //<--- Exception here!
> finally
> InternalDataset.EndCallbackFreeze;
> end;
> end;
> end;

Seems this should be resolved too, right?

Thanks for your VALUABLE BETA feedback!

Jason Wharton