DAO и ODBC во многом схожи в работе. Часто можно просто поменять класс CDatabase на CDAODatabase и больше ничего в коде. В чем же отличия. Ну во-первых DAO включает все, что есть в ODBC и при этом добавляет еще некоторые возможности. С другой стороны DAO наиболее оптимальна для работы с файлами Microsoft Access в смысле напрямую. Можно напрямую работать и с файлами FoxPro и Excel, для всего остального можно использовать ODBC через DAO только вот зачем ??? Потеряется всякая эффективность.
Реализация DAO основана на Microsoft Jet Database Ingine. Несмотря на то, что они похожи между DAO и ODBC есть существенные отличия. ODBC - это набор DLL, а DAO реализован в виде объектов OLE. К счастью для нас разницы нет ни какой, так как для работы нам достаточно объявить заголовочный файл.
#include "afxdao.h"
Итак, давайте посмотрим на функциональность: