Databases Reference
In-Depth Information
Auch wenn Anweisungen wie declare cursor oder fetch zum SQL-
Standard gehören, kann man sie in der Regel nicht im Dialog wie eine insert -
oder select -Anweisung anwenden. Da es in Dialogwerkzeugen wie der H2-
Console keine Programmvariablen gibt, wäre der Einsatz ohnehin sinnlos.
18.2
Wie bringe ich meiner Programmiersprache
SQL bei?
Es gibt mehrere Möglichkeiten, um mit Hilfe einer Programmiersprache auf eine
Datenbank zuzugreifen:
API: Wenn eine Programmiersprache neue Funktionalitäten benötigt, werden sie
in vielen Fällen im Rahmen einer API (Application Programming Interface) zur Ver-
fügung gestellt. Sie enthält Funktionen (oder Methoden, wie man im objektori-
entierten Jargon sagt), die die benötigten Dienste zum Verbindungsaufbau, Ver-
sand der SQL-Anweisungen und zur Verarbeitung der Ergebnisse liefern. Eine
der ersten und bekanntesten APIs für relationale Datenbanken wurde von Micro-
soft unter dem Namen Open Database Connectivity (ODBC) entwickelt und ist
rasch zum Standard geworden, der sich auch bei Microsoft-fremden Betriebssys-
temen etabliert hat. Es dauert eine Weile, bis man sich einigermaßen im Funk-
tionengeflecht von ODBC orientiert hat. Heutzutage dominieren objektorientierte
Sprachen wie Java, so dass es sich anbot, eine objektorientierte API zu entwickeln.
Mit JDBC gibt es seit Java 1.1 eine Sammlung von Datentypen, deren Methoden
alles abdecken, was man zur Entwicklung mit SQL benötigt. Wir lernen zwar nur
einen Bruchteil der API kennen, dieser ist aber der wichtigste, wenn wir typische
CRUD-Anwendungen 1
entwickeln wollen.
Einbettung in eine Sprache: Komfortabler als eine API ist die Erweiterung einer
bestehenden Programmiersprache um Anweisungen, die man für die Kommu-
nikation mit dem RDBMS benötigt. Für die Programmiersprache C gibt es etwa
ESQL/C (Embedded SQL for C). Eine kurze Anweisungsfolge sieht wie folgt aus:
printf("Reihe mit id=42:\n");
EXEC SQL DECLARE c1 CURSOR FOR
SELECT name
FROM reihen WHERE id = 42;
Einfache C-Funktionen und Anweisungen werden mit SQL-Anweisungen ge-
mischt, die mit EXEC SQL maskiert sind. Weil der C-Compiler die maskierten
Anweisungen nicht verarbeiten kann, wird der Quellcode vorher von einem Prä-
compiler übersetzt, der die EXEC SQL -Anweisungen dann in API-Aufrufe trans-
formiert. Neben ESQL/C ist ESQL/COBOL immer noch sehr verbreitet.
1
CRUD ist die Abkürzung für Create, Retrieve, Update und Delete. Gemeint sind damit Anwendun-
gen mit sehr einfach gehaltenen SQL-Anweisungen.
 
Search WWH ::




Custom Search