Использовать DAO или ODBC?
Примечание
Что касается 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.
Примечание
Для классов 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.
См. также
Другие ресурсы
Часто задаваемые вопросы по доступу к данным (доступ к данным MFC)