next up previous contents
Next: ODBC Up: Modulbeschreibungen Previous: Modulbeschreibungen

Überblick über die implementierten Module

Das Basismodul ODBC ist eine direkte Abbildung des Bibliothek ODBC32.DLL, die unter Windows den Treibermanager implementiert. Dieses Modul wird von allen weiteren Modulen importiert (siehe Abbildung gif).

Das Modul Ref ist ein weiteres Basismodul. Es wurde im Rahmen der Diplomarbeit entwickelt und ist jetzt Teil des Oberon-Systemsgif [WiG89]. Dieses Modul wird vom Modul EmbeddedSQL verwendet, um von Variablennamen, die in SQL-Abfragen vorkommen, auf deren Speicheradressen zu kommen.

EmbeddedSQL bietet eine einfach zu handhabende ODBC-Schnittstelle an. EmbeddedSQL definiert eine Klasse Connection für die Verbindung zu einer Datenbank und eine Klasse Statement für SQL-Abfragen. Innerhalb von SQL-Abfragen können Oberon-Variablen vorkommen, die bei der Ausführung der Abfrage dann durch die Werte der Variablen ersetzt werden bzw. die die Ergebnisse der Abfragen empfangen. Man kann bei der Definition einer Tabelle einfach den Typ eines Records angeben - die Tabelle wird dann so angelegt, daß es für jedes Feld des Records eine Spalte mit geeignetem Datentyp gibt. Auch beim Einfügen von Datensätzen und beim Auslesen gibt man einfach Oberon-Records an. Dieses Modul bietet aber nicht die Möglichkeit, Daten aus beliebigen Tabellen auszulesen. Man muß schließlich in den SQL-Abfragen Oberon-Variablen für die Ergebnisse angeben. Die Typen dieser Variablen müssen den Typen der Ergebnisse entsprechen, diese Typen kennt man wiederum im allgemeinen noch nicht zur Übersetzungszeit.

SQL bietet im Vergleich zu EmbeddedSQL eine etwas erweiterte Funktionalität an. Insbesondere ist ein allgemeiner Mechanismus vorgesehen für die Kommunikation von Daten beliebiger Typen. Es ist somit möglich einen Datenbankbrowser zu implementieren, bei dem der Benutzer zur Laufzeit SQL-Abfragen eingibt und die Ergebnisse angezeigt werden. Die Typen der Ergebnisse müssen nicht zur Übersetzungszeit bekannt sein. Das Modul SQL unterstützt alle ODBC-Datentypen (siehe Kapitel gif), z.B. auch lange binäre Daten (BLOBs, binary large objects). Solche dateibasierten Datentypen werden im Modul EmbeddedSQL nicht unterstützt.

Das Modul SQLExt implementiert die vollständige Funktionalität der ODBC Konformitätsebenen 1, 2 und 3 (siehe Kapitel gif). Wenn man mit der Funktionalität des Moduls SQL nicht auskommt, kann man auf die Erweiterung SQLExt zur"uckgreifen. Weiters stellt SQLExt einige Hilfsfunktionen für die Umsetzung von Datentypen auf ihre entsprechenden Zeichenketten an (z.B. Umsetzung des ODBC-Datentyps mit der Nummer -1 (LONG VARYING CHARACTER) mit 32000 Zeichen auf den MS Access-Datentyp "`MEMO(32000)"').

Schlußendlich wurden noch Anwendungsprogramme implementiert: DBBrowser ist ein Datenbankbrowser zum Administrieren von Datenbanken und Abfragen von Daten aus beliebigen Datenbanken. DataEditor ist ein datensatzorientierter Editor. Man kann neue Datensätze einfügen, bestehende ändern oder löschen und nach Datensätzen suchen. ODBCBench ist ein interoperables Testprogramm, das ohne Neuübersetzung mit beliebigen Datenbanken arbeiten kann (Tabellen erstellen, Daten einfügen und Daten auslesen). Addresses schließlich ist ein Beispielprogramm, das demonstriert, wie einfach es ist, eine kleine Adressenverwaltung mit EmbeddedSQL zu implementieren.

Die Tabelle gif gibt eine Aufstellung der implementierten Module mit deren Größe und Zweck. In der Abbildung gif ist die entstandene Modulhierarchie dargestellt, wobei die Pfeile die Importbeziehung andeuten (importierendes Modul bei der Pfeilspitze).

 
Table: Implementierte Module  

 
Figure: Modulhierarchie  



next up previous contents
Next: ODBC Up: Modulbeschreibungen Previous: Modulbeschreibungen



Christoph Steindl
Thu Jul 24 14:37:19 MET DST 1997