SQL im Programmcode (embedded SQL)
Embedded SQL
Die Anwendungsentwicklung mit Embedded SQL lässt sich folgendermaßen skizzieren:
Man schreibt zunächst wie gewohnt den Programmcode; an den Stellen, wo man auf die Datenbank zugreifen möchte, verwendet man sogenannte eingebettete SQL-Anweisungen (Englisch embedded SQLstatements), die durch spezielle Schlüsselwörter (z.B. EXEC SQL) eingeleitet bzw. abgeschlossen werden.
Um den Datentransfer zwischen dem DBMS und dem Anwendungsprogramm zu ermöglichen, muss man in der Zielsprache in einem speziell gekennzeichneten Bereich (DECLARE SECTION) Host-Variablen deklarieren, die der Kommunikation zwischen DBMS und Anwendungsprogramm dienen. Host-Variablen definieren einen (strukturierten) Speicherbereich, der gleichermaßen vom DBMS und vom Anwendungsprogramm genutzt werden kann. Insbesondere erfolgt über diesen Speicherbereich (oder mehrere Bereiche) die Kommunikation zwischen dem DBMS und dem Anwendungsprogramm.
Üblicherweise wird Quellcode, der eingebettete SQL-Anweisungen enthält, von einem (DBMS spezifischen) Präprozessor (Englisch Precompiler) bearbeitet, bevor der resultierende Quellcode dem Compiler der Host-Programmiersprache als Eingabe dient. Der Präprozessor ersetzt die eingebetten SQL-Anweisungen durch Befehle, die aus dem »klassischen« Sprachumfang der Zielsprache stammen; insbesondere werden Funktionen einer Laufzeitbibliothek aufgerufen, die der Kommunikation mit dem DBMS dient.