|
Designates the end of a transaction or subtransaction ("commit").
DBXEND is used in conjunction with DBXBEGIN to begin and end a
dynamic transaction.
DBXEND(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
-
is the name of the integer array containing the base IDs of the databases
which are involved in the DMDBX. Use the same baseidlist used with
DBXBEGIN when calling DBXEND mode 3 to end the DMDBX. The layout of
this array is same as in DBXBEGIN, except that the transaction ID is already
set in the first two halfwords by DBXBEGIN.
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, 2, 3 or 5.
- Mode 1: End of dynamic transaction spanning one database.
- Mode 2: End of dynamic transaction spanning one database, started
with DBXBEGIN mode 1, and write contents of the
transaction management (XM) logging buffer in memory to
disk. If logging is enabled, the contents of the logging buffer
in memory will also be written to disk.
- Mode 3: Indicates the end of a DMDBX started with DBXBEGIN mode
3. If user logging is enabled for the databases, mode 3
generates multiple entries in the log file, one for each
database in the DMDBX, in order to mark the end of a
dynamic transaction.
- Mode 5: Commit top level transaction. If nested transactions
are used this will commit all pending operations.
Eloquence handles modes 1, 2 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,2 and 3 are mapped to Eloquence mode 1
-
Mode 5 is mapped to Eloquence mode 2
-
Text is ignored
-
Nested transactions are allowed. If used, DBXEND most be called
the same number of times as DBXBEGIN or mode 5 with DBXEND
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 DBXEND mode 4 which is
used by SQL. This is not supported with Eloquence.
|
|