Subject Re: [IBO] Detecting StartTransaction
Author Jason Wharton
Please see the transactions topic in the IBO.HLP file. It goes into detail.

In transactions there are three different things that I track. They are
somewhat inter-related yet they are independent too.

There are three aspects I call explicit, logical and physical.

Explicit is when the developer in code calls StartTransaction.
Logical is when a DML is actually executed on the server making the
transaction hold some actual changes to be discarded or committed.
Physical is when there is a live transaction handle on the client allocated
from the server.

The three properties tied to each are these:

Explicit - InTransaction
Logical - TransactionIsActive
Physical - Started.

There is also the TransactionStatus property that tells a little more with
consideration of dataset states. If you have a dataset in an edit state and
no other posts have been performed then the transaction is in an
activepending state. If it posts it will become active and if it cancels
then it will become inactive again. If there is no physical transaction on
the client then the status is none.

Hope this brief summary will help.

It may seem more complex to have it split out like this but trust me, once
it clicks for you, you will wonder how anyone would consider doing it any
other way.

Jason Wharton
CPS - Mesa AZ