Board index » delphi » Error: IBX46 + Record not found (Jeff!)

Error: IBX46 + Record not found (Jeff!)

Since ibx 4.5 I've been waiting for a fix. The readme file of 4.6 item
26 describes the so called fix:
 >
26. Fix - TIBCustomDataset now checks if the Bookmark is valid in
ApplyUpdates before going to it.  This can still lead to an exception in
some cases if you use Append instead of Insert because of the way
TDataset handles them differently.
<

However as the text describes 'in some cases' it doesn't work for me.
Do the following to reproduce:
1. Create a TIbQuery with an UpdateObject with a single row in the
result set and CachedUpdates=True.
2. Set RecordTypes to include cusDeleted and Delete the single row.
3. After the OK button is clicked call ApplyUpdates.

The problem is supposed to be fixed using IsValidBookmark; however the
setting of the bookmark calls the Resync with an 'exact' flag and this
is the failing implementation.

Still the earlier workaround is required: Having the "Bookmark := ..."
bit in a try-except block to eat the exception.

Then another problem arises: Where is the vclib50.dpk to recompile the
package?

Please answer Jeff, I upgraded to 4.6 but my application can no longer
delete information now.

Kind regards,
Marco Wobben.

 

Re:Error: IBX46 + Record not found (Jeff!)


You were simulating the same problem it was having with Appends which is what
the warning was about.  4.61 should fix this (does in all my testing).

Quote
Marco Wobben wrote:

> Since ibx 4.5 I've been waiting for a fix. The readme file of 4.6 item
> 26 describes the so called fix:

> 26. Fix - TIBCustomDataset now checks if the Bookmark is valid in
> ApplyUpdates before going to it.  This can still lead to an exception in
> some cases if you use Append instead of Insert because of the way
> TDataset handles them differently.
> <

> However as the text describes 'in some cases' it doesn't work for me.
> Do the following to reproduce:
> 1. Create a TIbQuery with an UpdateObject with a single row in the
> result set and CachedUpdates=True.
> 2. Set RecordTypes to include cusDeleted and Delete the single row.
> 3. After the OK button is clicked call ApplyUpdates.

--
Jeff Overcash (TeamB)   I don't think there are any Russians
(Please do not email    And there ain't no Yanks
 me directly unless     Just corporate criminals
 asked.  Thank You)     Playing with tanks.  (Michael Been)

Other Threads