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.