Trbegin
Trbegin
is used to start a database transaction.
Trbegin TABLE_LIST
TABLE_LIST
is a list of TABLE
separated by commas.TABLE
can be either a table name or an abbreviation of a table already declared.# This function 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
# It also updates a statistical table
# Returns [V]CST_AOK if the operation was successful, otherwise returns [V]CST_AERROR.
Funprog TRANSFER(ACCOUNT1, ACCOUNT2, AMOUNT)
Value Char ACCOUNT1(), ACCOUNT2()
Value Decimal AMOUNT
Local Integer IF_TRANS
# Start the transaction if no transaction is in progress
Local File ACCOUNT [ACC]
If adxlog
Trbegin [ACC], STATISTICS
IF_TRANS=0
Else
# The transaction has been started by the calling program
IF_TRANS=1
Endif
# Debit operation (CODE is a unique index so only one database line is updated)
Update ACCOUNT Where CODE=ACCOUNT1 With BALANCE=BALANCE-AMOUNT
If fstat
# If IF_TRANS=1, the transaction must been aborted by the calling program
If IF_TRANS=0 : Rollback : Endif
End [V]CST_AERROR
Endif
# Credit operation
Update ACCOUNT Where CODE=ACCOUNT2 With BALANCE=BALANCE+AMOUNT
If fstat
# If IF_TRANS=1, the transaction must been aborted by the calling program
If IF_TRANS=0 : Rollback : Endif
End [V]CST_AERROR
Endif
# Updates account movement statistics
Update [STA] Where STACODE="ACCOUNTS" With MOVEMENTS=MOVEMENTS+1
If fstat
# If IF_TRANS=1, the transaction must been aborted by the calling program
If IF_TRANS=0 : Rollback : Endif
End [V]CST_AERROR
Endif
# The operation is successful. If IF_TRANS=1, the transaction must been committed by the calling program
If IF_TRANS=0 : Commit : Endif
End [V]CST_AOK
Trbegin
is used to start a database transaction, which is a set of operations that update the database tables including counters.Trbegin
instruction is used with the abbreviation of a table that has been opened before, the Filter options that have been previously placed on the table will continue to apply.Trbegin
instruction is used with the name of a table that is not yet opened, the table will automatically be opened as a Local File instruction.Trbegin
instruction is used with the name of a table that is already opened, the table will automatically be reopened as a Local File instruction. This means that the Filter options that have been previously placed on the table will no longer apply. They will be restored after the end of the transaction.Trbegin
, but were opened before the transaction started, the updates on these tables will be parts of the transaction. They will be committed or rolled back on the Commit / Rollback as well as the updates done on the table explicitly declared in Trbegin
.Code | Description |
---|---|
7 | Abbreviation not found. |
20 | Table not found. |
27 | Table access error. |
28 | Table opened twice. |
29 | Too many tables opened simultaneously. |
32 | Transaction started at a higher level of the nesting call. |
49 | Transaction already in progress. |
File, Commit, Rollback, Onerrgo, Read, Write, Writeb, Rewrite, RewriteByKey, Delete, DeleteBykey, Lock, adxlog.