Subject | RE: [IBO] TIB_Query.IsEmpty bug |
---|---|
Author | IBO Support List |
Post date | 2012-11-06T14:08:41Z |
That will be the final solution. This fix will be in the next sub-release.
Jason
-----Original Message-----
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On Behalf
Of tomjanczkadao
Sent: 06 November 2012 12:53 AM
To: IBObjects@yahoogroups.com
Subject: Re: [IBO] TIB_Query.IsEmpty bug
Hi
Bug is 100% reproducible (Delphi 7). I've uploaded sample app to Files area
(IsEmpty bug.zip). Every single line of attached code is important,
including setting properties for TIB_Grid (TrackGridRow, ListBoxStyle).
Adding a check for Active solves the problem. Is it temporary or final
solution?
Regards, Tomek
--- In IBObjects@yahoogroups.com, "IBO Support List" <supportlist@...>
wrote:
___________________________________________________________________________
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
Jason
-----Original Message-----
From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com] On Behalf
Of tomjanczkadao
Sent: 06 November 2012 12:53 AM
To: IBObjects@yahoogroups.com
Subject: Re: [IBO] TIB_Query.IsEmpty bug
Hi
Bug is 100% reproducible (Delphi 7). I've uploaded sample app to Files area
(IsEmpty bug.zip). Every single line of attached code is important,
including setting properties for TIB_Grid (TrackGridRow, ListBoxStyle).
Adding a check for Active solves the problem. Is it temporary or final
solution?
Regards, Tomek
--- In IBObjects@yahoogroups.com, "IBO Support List" <supportlist@...>
wrote:
>I
> I didn't get the problem to reproduce, but I think there is a change that
> could make a positive difference.
>
> In IB_Components.pas find this method implementation and change it to what
> have here:------------------------------------
>
> function TIB_BDataset.IsEmpty( MinRows: integer ): boolean;
> var
> tmpCnt: integer;
> begin
> if ( not Prepared ) or ( not IsSelectSQL ) then
> Result := true
> else
> begin
> while ( Active ) and
> ( BufferRowCount < MinRows ) and
> (( not BufferHasEof ) or
> ( not BufferHasBof )) do
> begin
> tmpCnt := MinRows - BufferRowCount - 1;
> if ( BufferRowCount < MinRows ) and ( not BufferHasEof ) then
> ValidateRows( EofRowNum, EofRowNum + tmpCnt );
> tmpCnt := MinRows - BufferRowCount - 1;
> if ( BufferRowCount < MinRows ) and ( not BufferHasBof ) then
> ValidateRows( BofRowNum - tmpCnt, BofRowNum );
> end;
> Result := BufferRowCount < MinRows;
> end;
> end;
>
> I added a check for Active in the loop that looks for whether things are
> empty or not.
>
> Please let me know how that works.
>
> Jason
___________________________________________________________________________
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