Subject Re: [IBO] Forcing Bookmark
Author Paul Gallagher
Strike that last message, the SetBookmark method actually IS executing. It
is something a little different. On the line of code below in
IBA_BDataset.IMP, on the records that are properly found with the bookmark,
it gets executed. On the ones where it does not go to the correct record, it
does not get executed. Without spending a week anylizing 100k lines of code,
could someone give me a little help? The strange part is, that the bookmark
that is being passed to SetBookmark IS valid. There must be something else
going on here. Another interesting thing, is that when I am in debug mode,
on codebreaks, the dataset gets completely lost, and seems to point to
random records. Its almost like a timing thing, where it gives up looking
for the record after a short period of time.

TIA,
Paul

procedure TIB_BDataset.SetBookmark( const ABookMark: string );
var
OldFetchingAborted: boolean;
begin
CheckBrowseMode;
if ( Bookmark <> ABookmark ) and
( ComponentState * [csDestroying] = [] ) then
begin
if Length( ABookmark ) = 0 then
GotoBOF
else
begin
OldFetchingAborted := FFetchingAborted;
try
FFetchingAborted := false;
KeyFields.RowData := ABookmark;
if not LookupKeyForFields then
GotoBOF;
finally
if OldFetchingAborted then FFetchingAborted := true;
<<<<<<<HERE>>>>>>>>>
end;
end;
end;
end;