Subject Re: [IBO] TIBOQUERY Problem
Author Jason Wharton
Andy,

Ok, that is an excellent starting point...

It is struggling to figure out which bookmark is greater. Since IBO doesn't
use a monolithical and inflexible buffering strategy as IBX does, I have to
actually locate each bookmark in the buffer in the context of the buffer
where they belong. Thus, it has to find them in place. If it doesn't find
them, I believe it is doing a blanket search before it gives up.

I should be able to figure out something a little more elegant than a
FetchAll. I'll look into it more closely.

What would be really grand is if you could extract something which will
duplicate this without the DevExpress. Just watch what it does and then we
can try to get to the bottom of this. This way you can tell me exactly which
bookmarks are being compared. For all we know, it could just be a really
simple thing to fix.

We could take this into a private channel if you like so as not to clutter
the list. Of course we will report back our findings....

Thanks,
Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com


----- Original Message -----
From: "Andy Murphy" <andy@...>
Newsgroups: egroups.ibobjects
To: <IBObjects@yahoogroups.com>
Sent: Wednesday, November 28, 2001 5:19 PM
Subject: Re: [IBO] TIBOQUERY Problem


> Ok,
>
> I followed your instructions when it did this hang up and the break point
> was:
>
> asm fldcw [SaveCW] end;
>
> and the callstack had:
>
> TIB_Dataset.SysFetchNext
> TIB_Dataset.SysFetchAll(???)
> TIB_Dataset.FetchAll
> TIB_BDataset.SeekKeyForBufferFields(($5FFD64, 0, 19375052, 13991936, 0))
> TIB_BDataset.LookupKeyForBufferFields
> TIB_BDataset.SetBufferBookmark(???)
> TIBODataset.CompareBookmarks($127A394,$127C88C)
> TCustomdxDBTreeListControl.CompareBkm(???,???)
> AssignNode(???)
> TCustomdxDBGrid.GetNextNodes(lmCurrent,rmNone,False)
> TCustomdxDBGrid.LoadGroupList(nil)
> TCustomdxDBGrid.ReLoadGroupList
> TCustomdxDBGrid.LinkActive(???)
>
TCustomdxDBGrid.SetOptionsDB([edgoCancelOnExit,edgoPartialLoad,edgoUseBookma
> rks])
> TForm1.doopenlist
> TForm1.dxDBTreeList1KeyDown(???,???,[])
> TCustomdxDBTreeList.KeyDown(13,[])
>
> Thanks.