SESAM/SQL supports the SQL and CALL DML interfaces.
In mixed mode operation, both interfaces can be used together in an ESQL COBOL application (see the “
CALL-DM Applications” manual).
You can use SQL and CALL DML interfaces together within the same transaction: In order to simplify the step-by-step conversion to the SQL environment, it is possible to issue SQL statements within CALL DML transactions in existing CALL DML applications.
CALL DML transaction
A CALL DML transaction starts with the CALL DML statement BTA and ends with a roll forward or rollback of the transaction.
You use the CALL DML statement ETA to roll a CALL DML transaction forward. A transaction is rolled back either by means of the statement RTA or internally by SESAM/SQL DBH when, for example, a deadlock is resolved.
Under openUTM, a transaction is rolled forward by the PEND variable which ends the transaction and rolled back by rolling back the UTM transaction.
Permitted SQL statements in a CALL DML transaction
Within a CALL DML transaction you can execute all SQL statements which are used to query and change data, SQL statements for dynamic SQL, some SQL statements for session control, the CALL statement, and the WHENEVER statement (for the initiation of the SQL statements, see section “Summary of contents”).
The following SQL statements are not permitted within a CALL DML transaction:
COMMIT WORK
ROLLBACK WORK
Any statements which are not permitted in a SQL-DML transaction are also not permitted:
SET TRANSACTION
SET SESSION AUTHORIZATION
SQL statements for schema definition and administration
SQL statements for managing the storage structure
SQL statements for managing user entries
Utility statements