<p>What options exist for accessing different databases from C++?
Put differently, what alternatives are there to ADO?
What are the pros and cons?</p>

Microsoft ODBC
.
The MFC ODBC classes such as
CDatabase
.
OleDB
(via COM).
And you can always go through the per-RDBMS native libraries (for example, the
SQL Server native library
)
DAO
(don't).
3rd party ORM providers.
I would recommend going through ODBC or OleDB by default. Native libraries really restrict you, DAO is no fun, there aren't a lot of great 3rd-party ORM for C++/Windows.