next up previous contents
Next: Ausführung von ODBC-Anweisungen Up: ODBC Previous: ODBC

Datentypen

  Nicht jeder Datenbanktreiber unterstützt alle definierten SQL-Datentypen, da verschiedene Datenbanksysteme unterschiedliche Datentypen zur Verfügung stellen.

Es ist nun leider nicht so, daß ODBC eine automatische Abbildung von vordefinierten Datentypen (z.B. CHARACTER VARYING, NUMERIC, INTEGER, CHARACTER) auf die vom jeweiligen Datenbanksystem unterstützten Datentypen (z.B. MEMO, CURRENCY, LONG, TEXT) durchführt, vielmehr wird das dem Anwendungsprogrammierer überlassen. Dieser Punkt führt in der Folge dazu, daß die Interoperabilität, die man aufgrund des ODBC-Architektur hätte, wieder teilweise verloren geht, wenn das Anwendungsprogramm nicht selber darauf achtet, mit beliebigen Datenbanken (und somit Datentypen) arbeiten zu können [St96]. Das mag in vielen Fällen gar keine große Einschränkung sein, da Anwendungen immer noch nicht ganz von der Datenbank unabhängig sind (trotz der oft angesprochen logischen und physischen Datenunabhängigkeit). Dennoch wurde in der vorliegenden Diplomarbeit versucht, den Anwendungsprogrammierer auf dem Weg zu interoperablen Oberon-Programmen zu unterstützen.

Die folgende Tabelle gibt einen Einblick in die Unterschiedlichkeit der unterstützten Datentypen einiger Datenbanktreiber. Alle Felder, die leer gelassen wurden, zeigen vom jeweiligen Datenbanktreiber nicht unterstützte Datentypen an. Die Breite eines Datentyps ist die maximale Anzahl von Stellen (Mantissenlänge, Anzahl dezimaler Ziffern, Anzahl von Zeichen bei Konvertierung in Zeichenkette).

Der Programmmierer darf also keine Annahmen über verfügbare Datentypen machen. Er muß sogar bei SQL-Anweisungen, die Datentypen enthalten (also zum Beispiel CREATE TABLE) genau die Zeichenkette für den Datentyp angeben, die der Datenbanktreiber versteht.

Diese Last kann man dem Anwendungsprogrammierer natürlich nicht aufbürden, weshalb dafür im anschließend beschriebenen Modul SQL einige Prozeduren zum Umsetzen der gewünschten Datentypen auf die unterstützten Datentypen zur Verfügung gestellt werden.

Was ODBC allerdings schon anbietet, ist Datenkonversion. Diese findet statt, wenn man Daten vom Anwendungsprogramm an die Datenbank schickt oder von der Datenbank Daten erhält. Man muß allerdings als Anwendungsprogrammierer diese Datenkonversion wiederum explizit veranlassen.



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