Embedded SQL

aus www.iwiki.de, der freien Wissensdatenbank

Embedded SQL (ESQL) ist eine Erweiterung des SQL-Standards, die es ermöglicht SQL-Befehle direkt mit dem Programmcode einer Anwendung zu vermischen. Dabei entfällt der zusätzliche Programmieraufwand, der gewöhnlich durch die Verwendung einer Datenbankschnittstelle entsteht.

In SQL Anweisungen kann der Programmierer ohne Einschränkungen auf Variablen aus dem Rest des Programmcodes zugreifen. Meistens wird vor dem eigentlichen Übersetzungsvorgang ein Prä-Compiler verwendet, der die im Quelltext integrierten SQL Anweisungen in Aufrufe einer Datenbankschnittstelle übersetzt - in einigen Fällen ist diese Funktionalität auch direkt im eigentlichen Compiler vorhanden.

Die Code-Erzeugung aus SQL Anweisungen durch den Compiler ist gleichzeitig die Stärke, aber auch die Schwäche von Embedded SQL. Dadurch dass dem Compiler die Datenbank und die Struktur der Datenbank bei der Übersetzung bekannt sind, können SQL Anweisungen bereits beim kompilieren auf syntaktische Korrektheit und Typsicherheit überprüft werden. Bei JDBC und ODBC wird der Zugriff erst zur Laufzeit aufgelöst, so daß Syntaxfehler erst auffallen, wenn der Fehler auftritt. Auf der anderen Seite ist das erzeugte Programm in den meisten Fällen dann allerdings von einer proprietären Bibliothek abhängig und die Flexibilität und dynamische Wahl der Datenquelle wie bei JDBC und ODBC entfallen. Im Normalfall verlangt die Verwendung einer anderen Datenbank die Neu-Übersetzung des Programms.

Der Vollständigkeit halber sei erwähnt, dass es Compiler gibt, die Embedded SQL direkt in Aufrufe der ODBC-Schnittstelle übersetzen und damit die Vorteile beider Ansätze vereinen.

Weblinks