Um es mal verständlicher zu machen: wenn Peter II schlichtweg von ODBC
spricht, dann meint er eigentlich den ODBC-Drivermanager. Denn das ist
derjenige, der die ODBC-API-Calls der Anwendungen empfängt. Die
ODBC-Anwendung redet eigentlich gar nicht direkt mit dem jeweiligen
ODBC-Treiber, sondern eben mit dem Treiber-Manager, der praktisch wie
ein Router fungiert.
An den Drivermanager kann man dann die unterschiedlichsten Treiber der
Datenbankprogramme andocken (Treiber+Datenbank registrieren).
Je nach angesprochenen DB Alias (auf API-Ebene Connectionhandle) routet
der Manager dann die API-Aufrufe der Anwendung an den jeweiligen Treiber
weiter. An der Stelle zw. Treiber und Treibermanager hat man dann eine
CLI-Schnittstelle (Call Level Interface), die man quasi als Vorläufer
von ODBc bezeichnen (ODBC ist eigentlich nur eine zusätzliche Schicht
obendrauf, um die Router-Funktionalität mit reinzubringen, was von MS
eigentlich keine schlechte Idee war).
Was man letztendlich für SQLs in den API-Aufrufen verschickt, ist
eigentlich wurscht, denn idR. interessiert sich der Treiber nicht dafür,
was da so hin- und herflutscht, es sei denn, man nutzt sogenannte
ODBC-Escape-Sequenzen, die gewisse Anweisungen für den Treiber
darstellen, oder der Treiber enthält gewisse Optimierungen für gewisse
SQL-Konstrukte.
Wenn Du willst, könntest Du deine eigene SQL-Sprache entwickeln, und
über ODBC verschicken. Brauchst dann nur noch eine Datenbank, die dieses
"SQL" auch versteht ;-)
Der ODBC-Treiber soll eigentlich nur die ODBC-API-Calls auf das native
DB-API umsetzen, so daß sich die Anwendung nicht mit den Eigenheiten
jeder x-beliegbigen DB auseinandersetzen muß.
Der angesprochen Text-Treiber ist eigentlich ein Zwitter - Datenbank und
Treiber zugleich.