If you make the comparison, in rough terms I would say this:
* Ole-Db provider - implemented by a vendor to the Ole-DB spec.
The only low level interface that talks directly to the data.
* Ole-DB is the underlying interface layer which is roughly
equivalent to ODBC's programming API. There's a provider
and consumer interface which is much cleaner in Ole-Db.
It's also all COM, rather than ODBC's API function interface.
* ADO is roughly equivalent to the ODBC consumer/application API.
It provides the consistent interface to Ole-Db. The interface is roughtly
the same, but providers can choose to not implement certain
aspects. One thing that I think is missing here is the ability
to extend ADO.
Consumers can also talk to Ole-Db directly, which would be
equivalent to making ODBC calls directly from an application.