Использование классов ATL, которые обертывают OLEDB, - путь. Если вы считаете, что вам придется сопоставлять вашу схему базы данных с внутренними классами C ++, то вы будете делать это либо с ADO и множеством болезненных IDispatch, либо с OLEDB, что более естественно в C ++. Если ваша схема базы данных изменится, вам придется изменить свой код независимо от подхода.
ADO - это оболочка OLEDB для OLE-автоматизации, поэтому не будет никакого увеличения производительности, за исключением того, что у вас будет гораздо меньше кода для написания IDispatch.
Существует множество вариантов и способов получения этих данных в форме XML.