Trattiamo oggi le differenze principali che ci sono tra le 2 API: ODBC e OLE DB. Innanzitutto entrambe sono delle interfacce standard che permettono di accedere a database e/o dati di varia natura in ambiente Microsoft Windows (ODBC non è specifico solo per Windows).
Open Database Connectivity (ODBC) è uno standard open, supportato dalla maggior parte dei vendor. Fornisce un accesso ai database relazionali aggirando le limitazioni dell’applicazione nativa, che potrebbe non essere in grado di accedere a tali database. ODBC costituisce pertanto un’interfaccia per accedere a qualunque RDBMS che supporti le API ODBC, come ad esempio Oracle, MS SQL Server, o MySQL.
Object Linking and Embedding Database (OLE DB) è invece una standard API specifica di Microsoft, sviluppata con l’obiettivo di maggiori prestazioni e in grado di accedere ad una maggior quantità di dati differenti. Difatti la sua particolarità è di permettere l’accesso sia a database relazionali che non, nel primo caso facendo uso di ODBC. Ad esempio è possibile accedere a MS SQL Server, Oracle, Excel, file raw e di altra natura in genere.
Riepilogando, le principali differenze tra i due sono:
- ODBC:
- fornisce accesso solo ai database relazionali;
- è meno efficiente;
- è uno standard open;
- OLE DB:
- fonisce accesso ai dati indipendentemente dalla loro posizione e formato;
- fornisce accesso alle sorgenti e ai driver ODBC (dunque database relazionali);
- è più efficiente.
Di seguito l’immagine mostra chiaramente il rapporto tra OLE DB e ODBC, e a quali dati riescono ad accedere.

Alcuni approfondimenti sono:
- Microsoft OLE DB, documentazione ufficiale;
- Introduction to OLE DB, come realizzare una connessione;
- Microsoft Open Database Connectivity (ODBC), documentazione ufficiale.
roghan