ODBC was the first generic data access API. This API is still the API of choice among many programmers for the following reasons:
ODBC is easier to use than OLE DB/ADO because ODBC doesn't have as many choices about how to manage sets of results. In addition, many C++ programmers have trouble with OLE DB's extremely factored interfaces model and reference counting in COM.
Microsoft Foundation Classes has direct support for ODBC through CRecordset and friends.
Many manufacturers of ODBC drivers have not built OLE DB providers for their data sources. On occasion, when they have, the performance of these providers is not as good as that of the corresponding ODBC drivers.
ODBC is perceived as being faster than OLE DB, ...