copyright (c)  2003   useGroup
PHP

Jochen Stärk
PHP-Tutorial
Was ist ODBC?

nach untenODBC: Microsoft-Datenbank-Treiber
nach untenProgammierersicht: DSNs und entfernte Datenbanken
nach untenVorteile
nach untenNachteile

ODBC: Microsoft-Datenbank-Treiber

nach obenODBC: 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

nach obenProgammierersicht: 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

nach obenVorteile 

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

nach obenNachteile 

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).


copyright (c)  2003   useGroup