Subject RE: [IBO] Filter
Author Jason Wharton
Oops, I left off some of the fix.

Here it is in completion:

if WantIdent then
begin
while ( EndPos < Length( AStr )) and ( AStr[EndPos] <= ' ' ) do
Inc( EndPos );
if ( EndPos < Length( AStr )) then
begin
if ( AStr[EndPos] = '(' ) then
begin
tmpPos := getLitsRoundSafePos( ')', AStr, EndPos + 2 );
if tmpPos > 0 then
begin
EndPos := tmpPos + 1;
Result := true;
end;
end;
end;
end
...

Jason Wharton


> -----Original Message-----
> From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com]On
> Behalf Of Jason Wharton
> Sent: Wednesday, October 03, 2007 9:51 PM
> To: IBObjects@yahoogroups.com
> Subject: RE: [IBO] Filter
>
>
> I did find a fix which is necessary to support the UPPER (and other
> functions of this type) if a space is between UPPER (or
> whatever MIN, MAX,
> etc.) and the open parenthesis like this:
>
> My Filter := 'UPPER ( mycol ) = ...
>
> Make the fix below:
>
> IB_Parse.pas line 6106
>
> tmpPos := getLitsRoundSafePos( ')', AStr, EndPos + 2 );
> if tmpPos > 0 then
> begin
> EndPos := tmpPos + 1; // Add the + 1 here.
> Result := true;
> end;
>
> Hope this helps,
> Jason Wharton
>
>
>
>
> ______________________________________________________________
> _____________
> IB Objects - direct, complete, custom connectivity to
> Firebird or InterBase
> without the need for BDE, ODBC or any other layer.
> ______________________________________________________________
> _____________
> http://www.ibobjects.com - your IBO community resource for
> Tech Info papers,
> keyword-searchable FAQ, community code contributions and more
> !
> Yahoo! Groups Links
>
>
>