Brauche ich den ODBC-Treiber?
Nur für Access und für andere Programme, die über ODBC arbeiten. Excel und Power BI kommen ohne ihn aus: Sie lesen den Datendienst über Power Query als OData-Feed.
Welches Werkzeug was braucht
| Werkzeug | Weg zum Datendienst | Treiber nötig | Lesen und Filtern | Bearbeiten |
|---|---|---|---|---|
| Access, Access-Runtime | verknüpfte Tabelle, Pass-Through-Abfrage, DAO/ADO | ja, in der Bitbreite von Access | ja, auf dem Dienst | ja, in Datenblatt und Formular |
| Excel, Power BI | Power Query, OData-Feed (/odata/v4/…) | nein | ja, Filter und Sortierung gehen an den Dienst | nein |
| .NET-Programme | ADO.NET (System.Data.Odbc) über den Treiber, oder HTTP | nur für ADO.NET | ja | ja |
| VBA ohne verknüpfte Tabellen | HTTP mit der Klasse DbGwClient: Verwaltungsbefehle, jede andere Anfrage über Execute | nein | über Execute | über Execute |
Die eingebauten Wege von Access genügen nicht: Die Verknüpfung mit Datendiensten („Datendienste“)
beruht auf einer XML-Verbindungsdefinition der Business Connectivity Services, nicht auf OData, und
die verknüpfte Tabelle ist schreibgeschützt (Microsoft:
Link to a Data Service). Damit
Access im Datenblatt bearbeiten kann, muss ein ODBC-Treiber die Parameter von Access als Werte binden,
Filter an den Dienst weitergeben und die Spaltentypen aus $metadata übernehmen. Der
OData-ODBC-Treiber tut das.
Grundkonzepte
Bitbreite. Eine 32-Bit-Anwendung lädt nur den 32-Bit-Treiber, eine 64-Bit-Anwendung nur den 64-Bit-Treiber. Das Installationspaket des Treibers installiert beide; welches Office auf einem Arbeitsplatz läuft, spielt dann keine Rolle.
Keine Laufzeit. Der Treiber ist eine native DLL; auf dem Arbeitsplatz ist keine .NET-Laufzeit nötig.
Ein generischer Treiber. Er spricht mit jedem OData-v4-Dienst. Am Datendienst nutzt er zusätzlich dessen Erweiterungen: Pass-Through-Abfragen, Gruppieren, Anmeldung mit persönlichem Schlüssel und zweitem Faktor sowie die Wahl der Datenbank-Identität.
Verwandte Themen
- Ausgangslage, Anwendungsfälle und Alternativen – welches Problem das Produkt löst und welche anderen Wege es gibt
- „Eine Tabelle in Access verknüpfen“ und „Verbindungszeichenfolge des Treibers (Referenz)“ (Dokumentation des ODBC-Treibers)
- HTTP: OData v4 (Referenz) – was Power Query an den Dienst schickt