Использование ADO или OLEDB с ATL - PullRequest
0 голосов
/ 19 ноября 2009

Я пишу класс с использованием C ++ (ATL). Мне нужно подключиться к базе данных. Я знаком с ADO, но вижу, что все функции используют IDispatch (поздняя привязка / автоматизация). Я рассматриваю возможность использования OLEDB вместо. Каковы плюсы и минусы каждого? OLEDB, похоже, требует много обслуживания, если меняется sql (таблицы, хранимые процедуры и т. Д.). Я использовал мастер для создания некоторых заголовков OLEDB, и они не так просты в использовании, как ADO, но скорость имеет значение. ADO также имеет простой механизм для преобразования результата в XML, что мне нужно. кто-нибудь использовал оба раньше? что вы предпочли? спасибо!

Чтобы уточнить, я упоминаю ATL только потому, что существуют мастера ATL для создания объектов-потребителей OLEDB.

1 Ответ

0 голосов
/ 02 декабря 2009

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

ADO - это оболочка OLEDB для OLE-автоматизации, поэтому не будет никакого увеличения производительности, за исключением того, что у вас будет гораздо меньше кода для написания IDispatch.

Существует множество вариантов и способов получения этих данных в форме XML.

...