Subject Re: [IBO] commit ending permanently
Author david_cornelius
Thanks for the reply, Kevin. It sparked a thought of something else
to check in the code and we discovered the stored procedure that was
being called next was not connected to the IB_Transaction on the data
module, but instead set to <default>. Doh!

However, it's interesting that this oversight caused an error that
was (IMHO) misleading and especially that no transaction control was
able to be regained.


David.

--- In IBObjects@y..., "Kevin Stanton" <Kevin.Stanton@R...> wrote:
> Hi David,
> I just threw a quick project together and can't get your error to
happen.
>
> Here's the project info:
>
> Connection component.
> Transaction component (ibt) - AutoCommit = True, Isolation =
tiCommitted.
>
> IB_Query:
> select * from customers
> order by custname
> for update
>
> IB_Datasource and IB Grid.
>
>
> Button 1: called "Explicit" has the following code:
>
> If NOT ibt.TransactionIsActive then
> ibt.StartTransaction;
> qryCusts.Edit;
> qryCusts.FieldByName('CustName').AsString := 'ABCXYZ Customer';
> qryCusts.Post;
> ibt.CommitRetaining;
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~
> Button 2: called "TR AC Status"
>
> If ibt.AutoCommit then
> ShowMessage('AutoCommit = True')
> else
> ShowMessage('AutoCommit = FALSE');
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~
>
> When I simply change a customer's name, all is well.
>
> When I hit Button 1 and then immediately change the 2nd customer's
name in
> the list, all works as planned -- the IB Transaction component
seems to
> automatically go back to "auto-commit" mode.
>
>
> I'm using IBO Version 4.2.Gb w/ Delphi 6.
>
>
> Kevin
>
>
>
>
> -----Original Message-----
> From: david_cornelius [mailto:corneliu@o...]
> Sent: Friday, July 26, 2002 11:12 AM
> To: IBObjects@y...
> Subject: [IBO] commit ending permanently
>
>
> Sorry about the <no subject>...
>
> --- In IBObjects@y..., "david_cornelius" <corneliu@o...> wrote:
> > I have an app using a TIB_Transaction with AutoCommit set to
true.
> > Most of the time, I let AutoCommit take care of the necessary
> > transaction handling for me. But for a certain set of
operations I
> > need to take explicit control, so I call:
> >
> > trn.StartTranaction
> > <<do some stuff>>
> > trn.CommitRetaining
> >
> > Then I want to be able to have the same AutoCommit behavior, but
> the
> > next operation results in an error: "Invalid Internal
> > IB_Transaction". Using CodeSite I notice that, as described in
the
> > help file, SavePoints are generated for the AutoCommit behavior
> > before this, but after I have taken control with the code above
and
> > done the "CommitRetaining", I see that the transaction has ENDED
> > and then I get the error even if I do an explicit
StartTransaction
> > right after CommitRetaining. Also, any other edits in the app
> never
> > get committed to the database.
> >
> > How do I get the AutoStart/AutoCommit behavior back again?
> >
> >
> > Thanks,
> >
> > David Cornelius
>
>
> Yahoo! Groups Sponsor
> ADVERTISEMENT
>
>
>
>
>
______________________________________________________________________
_____
> 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 the Yahoo! Terms of
Service.
>
>
>
> [Non-text portions of this message have been removed]