|
Rolls-back the active sequence of database procedure calls which
are considered a dynamic transaction.
DBXUNDO(base|baseidlist,text,mode,status,textlen)
- base
-
is the name of an array used as the base parameter when opening the
database. The first element of the array must contain the base ID
returned by DBOPEN. (Refer to DBOPEN for more information about the
base ID.)
Currently ignored. Eloquence transactions are not database
specific but include all databases modified in a transaction.
- baseidlist
-
Name of the integer array containing the base IDs of the databases which
are involved in the DMDBX. Use the same baseidlist parameter of DBXBEGIN
mode 3, when calling DBXUNDO to roll-back a DMDBX.
Currently ignored. Eloquence transactions are not database
specific but include all databases modified in a transaction.
- text
-
is the name of an array up to 256 halfwords long that contains user ASCII
or binary data to be written to the log file as part of the transaction log.
- mode
-
must be a halfword equal to 1, 3 or 5.
- Mode 1: Dynamically roll-back DBPUT, DBDELETE, and DBUPDATE
intrinsics which completed successfully since the matching
DBXBEGIN mode 1 call.
- Mode 3: Dynamically roll-back DBPUT, DBDELETE, and DBUPDATE
intrinsics which completed successfully inside the DMDBX to
their respective databases since the matching DBXBEGIN
mode 3 call. If user logging is enabled for the databases,
mode 3 generates multiple entries in the log file, one for
each database, in order to mark the roll-back of the
dynamic transaction.
- Mode 5: Roll-back top level transaction. If nested transactions
are used this will roll-back any pending transaction.
Eloquence handles modes 1 and 3 identically.
- status
-
is the name of an array of 10 halfwords in which the database returns
status information about the procedure. If the procedure executes
successfully, the status array contents are:
Element |
Contents |
1 |
If the procedure succeeds, the return status is 0.
Otherwise it provides a status code to describe the failure.
|
2 |
Transaction nesting level.
|
3-4 |
Unchanged.
|
5-10 |
Information about the current procedure call and its results.
|
- textlen
-
is an integer equal to the number of halfwords to be logged from the text
parameter, or is a negative integer equal to the number of bytes. Length
can be zero.
Notes:
-
Transactions are not database specific but affect all databases.
Consequently, no check is made for a valid database id or
database id list and no distinction is made between a single
database and multiple databases (DBMX).
-
Modes 1 and 3 are mapped to Eloquence mode 1
-
Mode 5 is mapped to Eloquence mode 3
-
Text is ignored
-
Nested transactions are allowed. If used, DBXUNDO most be called
the same number of times as DBXBEGIN or mode 5 with DBXUNDO
must be used.
-
Element 2 of the status error was unchanged with TurboIMAGE.
Eloquence returns the transaction nesting level.
-
TurboIMAGE/XL in addition supports the DBXUNDO mode 4 which is
used by SQL. This is not supported with Eloquence.
|
|