SESAM/SQL unterstützt die SQL- und die CALL-DML-Schnittstelle.
In einer ESQL-COBOL-Anwendung können im Mischbetrieb beide Schnittstellen zusammen verwendet werden (siehe Handbuch „
CALL-DML Anwendungen“).
SQL- und CALL-DML-Schnittstelle können auch innerhalb einer Transaktion gemischt werden: Um bei bestehenden CALL-DML-Anwendungen den schrittweisen Einstieg in die SQL-Welt zu erleichtern, ist es möglich, SQL-Anweisungen innerhalb von CALL-DML-Transaktionen abzusetzen.
CALL-DML-Transaktion
Eine CALL-DML-Transaktion beginnt mit der CALL-DML-Anweisung BTA und endet mit dem Vor- oder Rücksetzen der Transaktion.
Vorgesetzt wird eine CALL-DML-Transaktion durch die CALL-DML-Anweisung ETA. Zurückgesetzt wird sie durch die Anweisung RTA oder intern durch den SESAM/SQL-DBH, etwa bei Deadlock-Auflösung.
Unter openUTM wird eine Transaktion durch eine transaktionsbeendende PEND-Variante vorgesetzt, zurückgesetzt wird sie durch Rücksetzen der UTM-Transaktion.
Erlaubte SQL-Anweisungen in einer CALL-DML-Transaktion
Innerhalb einer CALL-DML-Transaktion können Sie alle SQL-Anweisungen zum Abfragen und Ändern von Daten, SQL-Anweisungen der dynamischen SQL, einige SQL-Anweisungen zur Sessionsteuerung, die CALL-Anweisung und die WHENEVER-Anweisung ausführen (zur Einteilung der SQL-Anweisungen siehe Abschnitt „Inhaltliche Zusammenstellung“ ).
Innerhalb einer CALL-DML-Transaktion sind folgende SQL-Anweisungen nicht erlaubt:
COMMIT WORK
ROLLBACK WORK
Nicht erlaubt sind außerdem alle Anweisungen, die auch in einer SQL-DML-Transaktion nicht verwendet werden dürfen:
SET TRANSACTION
SET SESSION AUTHORIZATION
SQL-Anweisungen zur Schemadefinition und -verwaltung
SQL-Anweisungen zur Verwaltung der Speicherstruktur
SQL-Anweisungen zur Verwaltung von Benutzereinträgen
Utility-Anweisungen