Subject Re: [IBO] EOF reported after next - missing one record.
Author Jason Wharton
Yes, that is what it attempts to do. But, there must be something in your
setup that is confusing it.

Did my recommendations resolve your issue?

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


----- Original Message -----
From: "danialwidner" <dwidner@...>
To: <IBObjects@yahoogroups.com>
Sent: Tuesday, July 16, 2002 1:49 PM
Subject: Re: [IBO] EOF reported after next - missing one record.


> Jason,
> Would it be possible to get a bookmark before the commit and then
> return to it after the commit.
>
>
> --- In IBObjects@y..., "Jason Wharton" <jwharton@i...> wrote:
> > Daniel,
> >
> > For PURE bde emulation you should switch the CommitAction of your
> query (at
> > run-time using the InternalDataset property) to caFetchAll and see
> if that
> > makes a difference. For many, this was a horrible problem the BDE
> imposed
> > upon people because their query would run forever if it had a lot
> of records
> > in it.
> >
> > > This is the scenario:
> > >
> > > IBOQuery.InternalDataset.CommitAction := caFetchAll;
> > > IBOQuery.open; // record count = x (say 20 for instance)
> > >
> > > While not iboQuery.eof do
> > > Begin
> > > .....
> > >
> > >
> >
> > HTH,
> > Jason Wharton
> > CPS - Mesa AZ
> > http://www.ibobjects.com
> >
> >
> > ----- Original Message -----
> > From: "danialwidner" <dwidner@a...>
> > To: <IBObjects@y...>
> > Sent: Wednesday, June 26, 2002 8:24 AM
> > Subject: [IBO] EOF reported after next - missing one record.
> >
> >
> > > I have isolated a problem discovered 2 weeks ago and reported
> > > directly to Jason.
> > >
> > > This is the scenario:
> > >
> > >
> > > IBOQuery.open; // record count = x (say 20 for instance)
> > >
> > > While not iboQuery.eof do
> > > Begin
> > > .....
> > >
> > >
> > > DB.StartTransaction;
> > >
> > > UpdateQuery.execSQL; // update control record as completed
> > >
> > > DB.Commit;
> > > // record count is now x-1 because it requeried.
> > > // record 1 is NOT the record we came into the loop with
> > > // It is now the original record # 2
> > > iboQuery.Next; // we just skipped the ORIGIONAL record # 2
> > >
> > > End;
> > > // record #2 never gets processed.
> > >
> > > I know that putting the IBOQuery used for control on it's own
> > > transaction will fix the problem. However, this is BDE converted
> > > code. It could take months to just add that item to all the files
> > > and queries that need it. Standard BDE operation needs to be
> > > restored / implemented (IE don't refire IBOqueries on commit if
> the
> > > values in the query itself have not been altered. Whatever).
> > >
> > > Perhaps have independent internal transactions for each query.
> Then
> > > from the DB StartTransaction action track a "Dirty" flag for
> those
> > > tranactions that are exececuted in some / any way before the
> > > commit / rollback action. Then only commit / rollback the dirty
> > > transactions leaving the clean external loop transactions alone.
> > >
> > >
> > > Dan
>
>
>
>
___________________________________________________________________________
> 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 !
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>