Subject Re: [IBO] Possible bug in IB_IncSearch and bugfix
Author Jason Wharton
I have provided a fix to incremental searching when there are nulls in the
column being searched on.
It will be in the IBO 4.5 release coming out shortly.

Jason Wharton

----- Original Message -----
From: "Oliver Wurdak" <e9426420@...>
To: <IBObjects@yahoogroups.com>
Sent: Monday, December 02, 2002 9:46 AM
Subject: [IBO] Possible bug in IB_IncSearch and bugfix


> Hi
>
> I have a problem with the TIB_IncSearch. When I search a key the dataset
> pointer moves till EOF.
> I look into the source to find the reason.
>
> I find the TIB_BDataset.SysIncSearch function. Without the knowledge about
> the exact behaviour of the function, I see that only a few rows (and their
> keys) are compared with the searchstring.
>
> here is an example of the keys in my dataset
>
> search for B in Inc_search
>
> Axxxx <- first compare
> Axxxx
> Axxxx
> Axxxx <- second compare
> Bxxxx
> Bxxxx
> NULL <- third compare
> NULL
> NULL
>
> The compare function is TIB_BDataset.DoCompareStr
>
> in the third compare there is a compare with NULL
> the AnsiCompareStr returns -1 and therefore the dataset scolls till EOF
>
> I changed the TIB_BDataset.DoCompareStr function to:
>
> begin
> if Assigned( IB_Connection.OnCustomCompareStr ) then
> Result := IB_Connection.OnCustomCompareStr( IB_Field, S1, S2 )
> else
> begin
> if S1=#0 then result:=1 //<-----------------------
> else Result := AnsiCompareStr(S1,S2);
> end
> end;
>
> and everything is ok
>
> for a general solution I should know wether the NULL are first or last
> (heard that you can choose this in firebird )
>
> lg Oliver