Rollback
Rollback
is used to end a database transaction and comes back to the situation before the beginning of the transaction (Trbegin).
Rollback
# This subprogram debits an account ACCOUNT1 and credits and account ACCOUNT2 with an AMOUNT value# It manages a transaction except if a transaction is already in progress# OPERATION_STATUS returns [V]CST_AOK if the operation was successful, otherwise it returns [V]CST_AERROR.# If a fatal error happens, OPERATION_STATUS returns [V]CST_AFATALSubprog TRANSFER(ACCOUNT1, ACCOUNT2, AMOUNT, RATE, OPERATION_STATUS)Value Char ACCOUNT1(), ACCOUNT2()Value Decimal AMOUNT,RATEVariable Integer OPERATION_STATUSLocal Integer IF_TRANS# Manage the exceptionsOnerrgo ABORT_TRANS# Start the transaction if no transaction is in progressLocal File ACCOUNTIf adxlogTrbegin ACCOUNTIF_TRANS=0Else# The transaction has been started by the calling programIF_TRANS=1Endif# Debit operation (CODE is a unique index so only one database line is updated)Update ACCOUNT Where CODE=ACCOUNT1 With BALANCE=BALANCE-ar2(AMOUNT/RATE)If fstat# If IF_TRANS=1, the transaction must been aborted by the calling programIf IF_TRANS=0 : Rollback : EndifOPERATION_STATUS=[V]CST_AERROREndEndif# Credit operationUpdate ACCOUNT Where CODE=ACCOUNT2 With BALANCE=BALANCE+ar2(AMOUNT/RATE)If fstat# If IF_TRANS=1, the transaction must been aborted by the calling programIf IF_TRANS=0 : Rollback : EndifOPERATION_STATUS=[V]CST_AERROREndEndif# The operation is successful. If IF_TRANS=1, the transaction must been committed by the calling programIf IF_TRANS=0 : Commit : EndifOPERATION_STATUS=[V]CST_AOKEnd# Error management# This may happen for instance when RATE is 0 (division by zero)$ABORT_TRANSIf IF_TRANS=0 : Rollback : EndifOPERATION_STATUS=[V]CST_AERROREnd
Rollback
is used to abort a database transaction, which is a set of operations used to update the database tables including counters. A transaction is started by a Trbegin instruction.Rollback
can only be carried out in the script or subprogram that started the transaction. The Rollback
instruction can be found in an error rerouting script called by Onerrgo.Rollback
releases all the locks placed on the tables and records and the symbols locked during the transaction. Rollback
also releases locks placed before the start of the transaction, except from those placed on symbols.Rollback
does not return any particular status.Code | Description |
---|---|
32 | Transaction started at a higher level of the nesting call. |
48 | No transaction in progress. |
File, Trbegin, Commit, Onerrgo, Read, Write, Writeb, Rewrite, RewriteByKey, Delete, DeleteBykey, Lock, adxlog.