Шаг 6 - Разница между ODBC и DAO

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"

Итак, давайте посмотрим на функциональность:

  1. DAO и ODBC могут работать с источниками данных ODBC.
  2. AppWizard может использовать и то и другое для генерации приложений.
  3. Для работы с этими системами используются MFC классы
  4. Данные хранятся в классах выборки RecordSet
  5. Похож принцип работы База - Выборка - действия.
  1. В DAO есть много методов, которых нет в ODBC.
  2. Небольшой выбор форматов баз данных для поддержки в DAO.
  3. Архитектура DAO более современная.
  4. В DAO есть промежуточный объект workspace, что улучшает взаимодействие.

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 22.03.2000