ADO is an API to OLE DB. ADO basically a set of classes that let you interact with many different data sources using the same or nearly the same code regardless of the data source. In general, ADO performance less than OLE DB performance. However, programming in OLE DB API directly may take a very long time to master.
ODBC and OLEDB are data source interface drivers. These operate on a lower level then ADO.
http://en.wikipedia.org/wiki/OLE_DB
=======================================================
Application --> ADO --> ODBC --> Database
Using this kind of scheme lets you change one of the layers without changing the others (usually).
ODBC is older than OLEDB but is an industry standard supported by almost every database vendor. OLEDB is Microsoft only. OLEDB does come with an interface driver itself so you could do the following if you had to.
Application --> ADO --> OLEDB --> ODBC --> Database
If you are using a language that has a direct API (like Oracle OCI) then you would be better using it as there will be less between your application and your data.
Application --> API --> Database
Using API you will get better performance but porting your code to a different data source or programming language would be harder.
ADO explanation from M$.
ActiveX Data Objects (ADO) is a high-level, easy-to-use interface to OLE DB. OLE DB is a low-level, high-performance interface to a variety of data stores. ODBC is another low-level, high-performance (maybe not-so high-performance, I think) interface that is designed specifically for relational data stores.
ADO provides a layer of abstraction between your client or middle-tier application and the low-level OLE DB interfaces. ADO uses a small set of automation objects to provide a simple and efficient interface to OLE DB. This interface makes ADO the perfect choice for developers in higher level languages, such as Visual Basic and VBScript, who want to access data without having to learn the intricacies of COM and OLE DB.
A Note on Providers from M$:
You are strongly encouraged to use one of the native OLE DB Providers instead of the Microsoft Open Database Connectivity (ODBC) Provider. Native OLE DB Providers provide better application stability and performance.
**********************************************************
