ODBC: Microsoft-Datenbank-Treiber
Open DataBase Connectivity ist ein Microsoft-eigenes (unter Linux nur
sehr wenig verbreitetes) Treiberprofil für SQL-Datenbanken.
ODBC ist wie SQL Datenbankunabhängig, übernimmt aber Funktionen die SQL
nicht kennt: Zum Beispiel muss überhaupt erst einmal eine Verbindung zur
Datenbank hergestellt werden (hier ist der Name Programm: database
connectivity). Der Verbindungsauf- und abbau (z.B.) ist außer in ODBC auch
nicht standartisiert
int mysql_connect(string [hostname [:port] [:/path/to/socket] ] , string [username] , string [password] );
v.s.
int ibase_connect (string database [, string username [, string password [, string charset [, int buffers [, int dialect [,
string role]]]]]])
, MySQL erlaubt es dem Benutzer im Gegensatz zu Interbase-Beispiel während einer
aktiven Verbindung den Benutzer zu wechseln u.m..
Fast alle größeren Datenbanken wie mySQL, SQL Server, Oracle, DB/2 usw.
liefern ODBC-Treiber für Windows mit Ihren Produkten aus.
Diese Treiber werden in vielen Programmiersprachen (C++, Perl)
in speziellen Bibliotheken zur Verfügung gestellt, in PHP ist keine
Einbindung einer Bibliothek nötig.
In den verschiedenen Programmiersprachen
unterscheiden sich die ODBC_Kommandos oft nur durch den Funktionsnamen
(In PHP alle odbc_-Funktionen).
Progammierersicht: DSNs und entfernte Datenbanken

|
|
Unter Systemsteuerung/32-Bit ODBC können dort DSNs (Data Source Names)
angelegt werden,
die ODBC-Datenbanken einen Namen geben. Neben der DSN können dort
Benutzername und Passwort angegeben werden, sodass ein ODBC-Aufruf
dann im Prinzip nur noch sagt: öffne ODBC-Quelle Datenbank1 und
damit wird z.b. db1 mit dem Benutzer sysdba und dem passwort
changeme "aktiviert". ODBC-DSNs müssen nicht auf dem lokalen
Computer vorliegen: auch Datenbanken im lokalen Netzwerk können
angesprpochen werden. Auch übernimmt ODBC eine Weitervermittlung
der SQL-Anfragen bzw. Ergebnisse. In PHP gibt es z.b. verschiedene
Implementationen von EXEC (also em Ausführen eines SQL-Kommandos), eine
für mySql (mysql_exec),
und eine für Interbase (ibase_exec) (und weitere), weil jeweils eine
andere Bibliothek angesporchen werden muss. Auch das entfällt unter ODBC
(dort heißt die Sache für alle angeschlossenen Datenbanken
odbc_exec).
Die ODBC-Kommandos unterscheiden sich nur geringfügig von den
Datenbank-Spezialisierten SQL-Aufrufen.
Vorteile
ODBC-Vorteile sind also datenbankunabhängige Entwicklung
(sowohl der Programmiertools als auch der Anwendungen) mit einer
konsequenteren Unterstützung entfernter Datenbanken (Datenbanken die über das
Intra- oder Internet angesprochen werden),
Nachteile
Nachteile sind die oft quälende
Langsamkeit (odbc-sql-kommando sind schmerzhaft langsamer als die
Datenbanknativen), Microsoft-Fixiertheit (von Linux keine Spur),
die Notwendigkeit, eigene Treiber für die Datenbanken zu
installieren und Datenbanken u.U. selbst eintragen zu müssen
(siehe
ein eigenes Testsystem aufbauen).