Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

ESQL-COBOL

Der Precompiler ESQL-COBOL (BS2000) ermöglicht die Ausführung von COBOL-Programmen, in die SQL-Anweisungen eingebettet sind. Der Anfang und das Ende einer SQL-Anweisung werden jeweils markiert. Der Precompiler kann damit die SQL-Anweisungen erkennen und erzeugt ein SQL-Bindelademodul (Link-and-Load-Module, LLM), in dem die SQL-Anweisungen zusammengefasst sind. Das COBOL-Programm, das keine SQL-Anweisungen mehr enthält, wird mit dem COBOL-Compiler übersetzt. Die folgende Abbildung zeigt den geschilderten Ablauf.

Programme mit National-Datentypen können nur mit entsprechender BS2000-Systemumgebung (vor-)übersetzt werden, siehe "Unicode-Konzept in SESAM/SQL".

Bild 3: Einsatz des ESQL-Precompilers


Über Precompiler-Optionen kann der Anwender die Eigenschaften der Precompilierung festlegen. So ist u.a. einstellbar, dass nur standardkonforme SQL zugelassen wird, um dadurch portierbare SQL-Programme zu erzeugen.

Mit Hilfe der sogenannten dynamischen SQL ist es möglich, SQL-Anweisungen erst während des Ablaufs eines ESQL-Programms anzugeben. Damit sind z.B. Dialoganwendungen mit variabel gestalteten Abfragen und Änderungen der Datenbank realisierbar.

Ein ESQL-Programm kann auch CALL-DML-Anweisungen enthalten. SQL-Anweisungen und CALL-DML-Anweisungen können auch innerhalb einer Transaktion gemeinsam enthalten sein. Dazu werden SQL-Anweisungen in eine CALL-DML-Transaktion eingebettet.

Die genaue Beschreibung des ESQL-Precompiler entnehmen Sie bitte dem Handbuch „ ESQL-COBOL für SESAM/SQL-Server“.

Für SESAM/SQL-Server wird kein ESQL-C-Precompiler angeboten. Stattdessen gibt es die Empfehlung, die SQL-Anweisungen aus einem C-Programm zu extrahieren und in ein ESQL-COBOL-Programm einzuschalen. Aus dem C-Programm heraus können dann die COBOL-Prozeduren mit den jeweiligen SQL-Anweisungen aufgerufen werden. Die Werte für SQL-Hostvariablen werden als Parameter an die COBOL-Prozedur übergeben.