Was ist ODBC?

In der Computerwelt gibt es viele Missverständnisse über ODBC. Für den Endbenutzer ist es ein Symbol im Microsoft® Windows-Systemsteuerung®. Für den Anwendungsprogrammierer handelt es sich um eine Bibliothek, die Datenzugriffsroutinen enthält. Für viele andere ist es die Antwort auf alle Datenbankzugriffsprobleme, die sich jemals vorgestellt haben.

Odbc ist in erster Linie eine Spezifikation für eine Datenbank-API. Diese API ist unabhängig von einem DBMS oder Betriebssystem. Obwohl in diesem Handbuch C verwendet wird, ist die ODBC-API sprachunabhängig. Die ODBC-API basiert auf den CLI-Spezifikationen von Open Group und ISO/IEC. ODBC 3. x implementiert beide Spezifikationen vollständig – frühere Versionen von ODBC basierten auf vorläufigen Versionen dieser Spezifikationen, wurden jedoch nicht vollständig implementiert – und fügt Features hinzu, die häufig von Entwicklern von bildschirmbasierten Datenbankanwendungen benötigt werden, z. B. scrollbare Cursor.

Die Funktionen in der ODBC-API werden von Entwicklern DBMS-spezifischer Treiber implementiert. Anwendungen rufen die Funktionen in diesen Treibern auf, um DBMS-unabhängig auf Daten zuzugreifen. Ein Treiber-Manager verwaltet die Kommunikation zwischen Anwendungen und Treibern.

Obwohl Microsoft einen Treiber-Manager für Computer mit Microsoft Windows® 95 und höher bereitstellt, mehrere ODBC-Treiber geschrieben hat und ODBC-Funktionen aus einigen seiner Anwendungen aufruft, kann jeder ODBC-Anwendungen und -Treiber schreiben. Tatsächlich werden die meisten der heute verfügbaren ODBC-Anwendungen und -Treiber von anderen Unternehmen als Microsoft geschrieben. Darüber hinaus sind ODBC-Treiber und -Anwendungen auf dem Macintosh® und einer Vielzahl von UNIX-Plattformen vorhanden.

Zur Unterstützung von Anwendungs- und Treiberentwicklern bietet Microsoft ein ODBC Software Development Kit (SDK) für Computer mit Windows 95 und höher an, das den Treiber-Manager, die Installations-DLL, Testtools und Beispielanwendungen bereitstellt. Microsoft hat sich mit Visigenic Software zusammengetan, um diese SDKs auf den Macintosh und eine Vielzahl von UNIX-Plattformen zu portieren.

Es ist wichtig zu verstehen, dass ODBC darauf ausgelegt ist, Datenbankfunktionen verfügbar zu machen und nicht zu ergänzen. Daher sollten Anwendungsautoren nicht erwarten, dass die Verwendung von ODBC eine einfache Datenbank plötzlich in eine relationale Datenbank-Engine mit vollem Funktionsumfang verwandelt. Ebenso wenig wird von Treiberautoren erwartet, dass sie Funktionen implementieren, die in der zugrunde liegenden Datenbank nicht gefunden werden. Eine Ausnahme besteht darin, dass Entwickler, die Treiber schreiben, die direkt auf Dateidaten zugreifen (z. B. Daten in einer Xbase-Datei), eine Datenbank-Engine schreiben müssen, die mindestens minimale SQL-Funktionen unterstützt. Eine weitere Ausnahme besteht darin, dass die ODBC-Komponente des Windows SDK, die zuvor im Microsoft Data Access Components (MDAC) SDK enthalten war, eine Cursorbibliothek bereitstellt, die scrollbare Cursor für Treiber simuliert, die eine bestimmte Funktionalitätsebene implementieren.

Anwendungen, die ODBC verwenden, sind für alle datenbankübergreifenden Funktionen verantwortlich. Beispielsweise ist ODBC weder eine heterogene Join-Engine noch ein verteilter Transaktionsprozessor. Da es jedoch DBMS-unabhängig ist, kann es verwendet werden, um solche datenbankübergreifenden Tools zu erstellen.