Freigeben über


Was ist ODBC?

Viele Falschverständnise über ODBC existieren in der Computerwelt. Für den Endbenutzer ist es ein Symbol in der Microsoft Windows-Systemsteuerung. Für den Anwendungsprogrammierer handelt es sich um eine Bibliothek mit Datenzugriffsroutinen. Für viele andere ist es die Antwort auf alle Datenbankzugriffsprobleme, die sich jemals vorstellen.

In erster Linie ist ODBC 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 aus 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, implementierten sie jedoch nicht vollständig – und fügt Funktionen hinzu, die häufig von Entwicklern bildschirmbasierter Datenbankanwendungen benötigt werden, z. B. Bildlauf-Cursor.

Die Funktionen in der ODBC-API werden von Entwicklern dbMS-spezifischer Treiber implementiert. Anwendungen rufen die Funktionen in diesen Treibern auf, um auf DBMS-unabhängige Weise 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 verfügbaren ODBC-Anwendungen und Treiber heute von anderen Unternehmen als Microsoft geschrieben. Darüber hinaus existieren ODBC-Treiber und -Anwendungen auf macOS und einer Vielzahl von UNIX-Plattformen.

Um Anwendungs- und Treiberentwicklern zu helfen, 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 plötzlich eine einfache Datenbank in ein vollständig bereitgestelltes relationales Datenbankmodul transformiert. Es wird auch nicht erwartet, dass Treiberautoren Funktionen implementieren, die in der zugrunde liegenden Datenbank nicht gefunden wurden. Eine Ausnahme besteht darin, dass Entwickler, die Treiber schreiben, die direkt auf Dateidaten (z. B. Daten in einer Xbase-Datei) zugreifen, zum Schreiben eines Datenbankmoduls erforderlich sind, das mindestens minimale SQL-Funktionen unterstützt. Eine weitere Ausnahme besteht darin, dass die ODBC-Komponente des Windows SDK, früher im Microsoft Data Access Components (MDAC)-SDK enthalten, eine Cursorbibliothek bereitstellt, die bildlauffähige Cursor für Treiber simuliert, die eine bestimmte Funktionalitätsebene implementieren.

Anwendungen, die ODBC verwenden, sind für jede datenbankübergreifende Funktionalität verantwortlich. Beispielsweise ist ODBC kein heterogenes Join-Modul und kein verteilter Transaktionsprozessor. Da es jedoch DBMS-unabhängig ist, kann es verwendet werden, um solche datenbankübergreifenden Tools zu erstellen.