пользователей: 30398
предметов: 12406
вопросов: 234839
Конспект-online
РЕГИСТРАЦИЯ ЭКСКУРСИЯ

Доступ к данным в Visual C++. Технологии DAO, RDO, ODBC.

 

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

Вы получили общее представление о классах ODBC Visual C++ и узнали о том, как они используются в приложениях, созданных с помощью мастера AppWizard. Visual C++ также включает полный набор классов DAO, которые можно использовать для создания БД-приложений. DAO во многих отношениях является для классов ODBC суперклассом, включая большинство функциональных возможностей ODBC и добавляя при этом множество своих собственных. К сожалению, хотя классы DAO и могут работать с источниками данных ODBC, для которых существуют ODBC-драйверы, такое их применение не особенно эффективно. По этой причине DAO-классы больше подходят для создания программных приложений, оперирующих файлами баз данных формата .mdb фирмы Microsoft, создаваемых приложением Microsoft Access. Файлы других форматов, с которыми можно, используя классы DAO, работать напрямую, создаются приложениями FoxPro и Excel.

Классы DAO, которые используют приложение Microsoft Jet Database Engine, настолько похожи на классы ODBC, что во многих случаях можно конвертировать программы ODBC в DAO путем простого изменения названия класса в тексте программы: CDatabase изменяется на CDaoDatabase, CRecordset изменяется на CDaoRecordset, a CRecordView изменяется на CDaoRecordView. Однако между классами ODBC и DAO имеется существенное различие в том, как реализуются системные библиотеки. ODBC-классы реализованы как набор модулей DLL, в то время как классы DAO реализованы в виде объектов OLE. Использование объектов OLE делает систему DAO несколько более современной в сравнении с ODBC, по крайней мере, в отношении архитектуры.

Хотя система DAO реализована в виде объектов OLE, вам не придется беспокоиться о работе с подобными объектами напрямую. Входящие в MFC классы DAO берут обработку всех деталей управления на себя, предоставляя данные и методы, обеспечивающие взаимодействие с объектами OLE. Класс CDaoWorkspace обеспечивает с помощью статических методов прямой доступ к объектам ядра базы данных DAO. Хотя MFC берет управление рабочей областью на себя, можно использовать ее данные и методы для непосредственной инициализации связи с базой данных.

Еще одно отличие состоит в том, что классы DAO предоставляют более мощный набор функций, которые можно использовать для манипулирования базой данных. Эти более мощные методы позволяют выполнять с базами данных сложные операции, используя небольшой объем исходного текста на C++ или SQL-выражения, написанные непосредственно разработчиком.

•Обе системы (ODBC и ОАО) могут работать с ODBC-источниками данных. Однако DАО менее эффективна при таком применении, так как больше подходит для работы с файлами баз данных формата .mdb.

•Мастер AppWizard может создать заготовку БД-приложения, используя либо классы ODBC, либо классы DАО. Выбор типа создаваемого приложения зависит, по крайней мере, частично, от баз данных, с которыми вы будете работать.

•Обе системы — и ODBC, и DAO — используют для соединения с базой данных, к которой осуществляется доступ, объекты классов баз данных MFC. В ODBC такой класс базы данных называется CDatabase, а в системе DAO — CDaoDatabase. Хотя эти классы и имеют разные названия, DAО-класс содержит множество членов, подобных тем, которые можно обнаружить в ODBC-классе.

•Обе системы, ODBC и DAO, используют объекты класса выборки данных для хранения записей, выбранных на текущий момент. В ODBC такой класс выборки данных называется CRecordset, а в системе DAO— CDaoRecordset. Хотя эти классы и имеют разные названия, DAO-класс выборки данных содержит практически все члены класса ODBC. Кроме того, DAO-класс имеет большой набор дополнительных методов.

•Системы ODBC и DAO используют схожие методики просмотра содержимого источника данных, а именно: в обеих системах приложение должно создать объект базы данных, создать объект выборки данных, а затем вызвать методы соответствующего класса для манипулирования базой данных.

Различия между системами ODBC и DAO состоят в следующем.

Хотя входящие в MFC классы ODBC и DAO похожи (иногда даже очень), некоторые аналогичные методы имеют разные имена. Кроме того, классы DAO включают много методов, которым нет аналогов в классах ODBC.

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

•Большое количество существующих ODBC-драйверов делает систему ODBC пригодной для работы с множеством файлов баз данных различных форматов, в то время как система DAO больше подходит для приложений, работающих только с файлами формата . mdb.

•Система ODBC реализована в виде набора DLL-модулей, а DAO реализована как набор объектов OLE.

•В ODBC объект класса CDatabase напрямую взаимодействует с источником данных. В DAO объект класса CDaoWorkspace занимает промежуточное положение между объектами классов CDaoRecordset и CDaoDatabase, что дает возможность рабочей среде взаимодействовать со многими объектами класса баз данных.

 


18.01.2020; 20:36
хиты: 48
рейтинг:0
для добавления комментариев необходимо авторизироваться.
  Copyright © 2013-2024. All Rights Reserved. помощь