CDO$HELP.HLB  —  CDO Commands, ROLLBACK
    Format

      ROLLBACK

1  –  Description

    The ROLLBACK command terminates a transaction and undoes all
    changes that have been made to the database since the program's
    most recent START_TRANSACTION command. The ROLLBACK command also
    releases all locks, closes all open streams, and releases all
    readied relations. It affects all databases participating in
    the currently open transaction. The ROLLBACK command implicitly
    performs the END_STREAM statement.

2  –  Restrictions

    o  When you delete a record, local fields within that record are
       marked for deletion at the end of the transaction, provided
       that they remain unused at the end of the transaction. Using
       CDO, there is no way to reuse those local fields. It is
       possible to use local fields through the Oracle CDD/Repository
       APIs. Therefore, the local fields cannot be automatically
       deleted at the same point in the transaction as the record.

       You must either delete the record and field in separate
       transactions (outside the START_TRANSACTION . . . COMMIT stream
       of commands) or, to accomplish this in one transaction, use
       the ENTER command to enter the local field, delete the record,
       delete the local field, and then delete the global field.

    o  Usually, if Oracle CDD/Repository issues any errors between
       the START_TRANSACTION and COMMIT commands, it forces you
       to roll back the transaction. In some cases, such as in the
       CHANGE or DELETE commands, Oracle CDD/Repository allows you to
       commit the transaction. The general rules are:

       -  If you receive an Oracle CDD/Repository error of E or F
          severity, such as a CDD-E-NODNOTFND message, you must abort
          the transaction.

       -  If you receive a CDO error of E or F severity, such as
          CDO-E-NOTFOUND, you can continue to operate in the current
          transaction.

3  –  Examples

  CDO>  START_TRANSACTION
  CDO> DEFINE RECORD REC2.
  cont> FLD1. END RECORD.
     .
     .
     .
  CDO> SHOW RECORD REC2
  Definition of record REC2 |   Contains field           FLD1
  CDO> ROLLBACK
  CDO> SHOW RECORD REC2
  %CDO-E-ERRSHOW, error displaying an object
  -CDO-E-NOTFOUND, entity REC2 not found in dictionary

      In this example, a record is defined within a transaction,
      but because the transaction is terminated using the ROLLBACK
      command, the record is not defined.
Close Help