Использовать DAO или ODBC?

Обновлен: Ноябрь 2007

ttc6chk1.alert_note(ru-ru,VS.90).gifПримечание.

Что касается Visual C++ .NET, то среда и мастера Visual C++ больше не поддерживают DAO (хотя классы DAO включены и вы по-прежнему можете их использовать). Майкрософт рекомендует использовать для новых проектов шаблоны OLE DB или ODBC. DAO необходимо использовать только для поддержки существующих приложений.

Какой набор классов MFC следует использовать? Это зависит от ваших потребностей.

  • Используйте классы ODBC только в тех случаях, когда работаете исключительно с источниками данных ODBC, в частности в ситуациях "клиент-сервер", когда классы MFC ODBC обеспечивают более высокую производительность.

  • Используйте классы DAO, если работаете в первую очередь с базами данных Microsoft Jet (MDB) или базами данных других форматов, чтение которых обработчики баз данных могут выполнять непосредственно. Список этих форматов представлен в разделе Какие базы данных можно подключить к DAO и ODBC?

  • Подключайте источники данных ODBC посредством классов DAO, если хотите повысить скорость обработчика баз данных Microsoft Jet и обеспечить дополнительную функциональность классов DAO.

    ttc6chk1.alert_note(ru-ru,VS.90).gifПримечание.

    Для классов DAO требуется дополнительное дисковое пространство.

Классы DAO имеют следующие преимущества.

  • Более высокая производительность в отдельных случаях, особенно при использовании баз данных Microsoft Jet (MDB).

  • Совместимость с классами ODBC, а также с Microsoft Access Basic и Microsoft Visual Basic.

  • Доступ к правилам проверки.

  • Возможность указания отношений между таблицами.

  • Расширенная модель доступа к данным с поддержкой языка описания данных DDL и языка обработки данных DML. Дополнительные сведения см. в разделе Описание и обработка баз данных.

В представленной ниже таблице сведены основные отличия, который помогут вам в выборе.

Выбор между классами MFC DAO и ODBC

Возможность

Классы DAO

Классы ODBC

Доступ к MDB-файлам

Да

Да

Доступ к источникам данных ODBC

Да

Да

Доступность для 16-разрядных приложений

Нет

Да

Доступность для 32-разрядных приложений

Да

Да

Доступность для 64-разрядных приложений

Нет

Да

Сжатие баз данных

Да

Нет

Поддержка обработчиков баз данных

Обработчик баз данных Microsoft Jet

Конечный DBMS

Поддержка DDL

Да

Только через прямые вызовы ODBC

Поддержка DML

Да

Да

Природа реализации MFC

"Оболочка" основных функций DAO

Упрощенная абстракция, а не "оболочка" API-интерфейса ODBC

Оптимально для

.MDB-файлов (Microsoft Access)

Любых DBMS, для которых имеется драйвер, особенно в ситуации "клиент-сервер"

Поддержка транзакций

По каждому решению или по данным ODBC, по базе данных

По базе данных

Необходимо помнить, что возможности драйверов ODBC отличаются. Подробности см. в разделе ODBC Справочник программиста и файле справки драйвера ODBC.

См. также

Другие ресурсы

Часто задаваемые вопросы по теме доступа к данным