RollbackRetaining method |
Applies to
TIB_Transaction
Declaration
Procedure RollbackRetaining;
Description
This method performs a rollback but the datasets are not all closed. It also
cancels any pending inserts, edits or deletes.
This method has a different behavior for InterBase version 6 and onward.
For IB 5.x and earlier, it emulates cursor retainment by refreshing all the
datasets and maintains their current cursor positions wherever possible. So,
the datasets will actually be refreshed. It has to perform a hard rollback
which does end the physical transaction.
InterBase 6 supports this mechanism at the API level so this method maps into
this functionality. Thus, for InterBase 6 and later this method does not
point the physical transaction also will be retained, not just the cursors.
It will still be necessary to refresh the datasets since IBO does not attempt to
keep track of all the changes made during a transaction in a cache somewhere and
have the ability to revert all changes back out of the buffers on the client. A
good example of the optimistic nature of the client/server environment.