Объекты доступа
к данным (DAO, Data Access Objects) создавались, как объектно-ориентированный
интерфейс для ядра баз данных Jet фирмы Microsoft. В ранних версиях Microsoft
Office доступ к данным обеспечивался исключительно ядром Jet. Сначала ядро Jet
могли использовать только Access и Visual Basic, но с выходом пакета Microsoft
Office 95 ядро Jet стало сервером Automation, что позволило использовать DАО
для доступа к данным из любого клиента Automation. В версии Office 97 компоненты
Excel, Word и PowerPoint стали клиентами Automation и вышла новая версия DAO
3.5. В DАО 3.5 появился новый режим доступа к данным ODBCDirect, который позволяет
манипулировать данными в обход ядра Jet, напрямую связываясь с источниками данных
ODBC no технологии "клиент-сервер". За счет прямого доступа к данным
получается выигрыш в производительности, при этом конечный пользователь имеет
стандартный объектно-ориентированный интерфейс доступа к различным типам данных,
начиная от баз данных Access до баз данных ISAM (Indexed Sequential Access Method
— индексно-последовательный метод доступа) и SQL. Отсюда можно заключить, что
DАО — это унифицированный набор объектов для доступа к данным.
В Microsoft
Office 2000 вошли новая версия DAO 3.6 и новая версия Microsoft Jet 4.0, в которой
реализована поддержка Unicode, т. е. в базах данных появилась возможность хранить
символы любых национальных алфавитов одновременно. В версии Microsoft Access
2002 используются те же версии Jet и DАО.
DАО версии
3.5 и выше включает две объектные модели, соответствующие двум типам "рабочей
области" (сеанс работы с базой данных), в зависимости от того, используется
ли ODBCDirect. При доступе к данным с помощью ядра Microsoft Jet применяется
рабочая область Microsoft Jet. В случае прямого доступа к источнику данных ODBC
используется рабочая область ODBCDirect. Тип рабочей области и связанного с
ней источника данных определяет, какие объекты, свойства и методы DАО можно
использовать (рис. 13.4, 13.5).
Применяйте
рабочую область Microsoft Jet для доступа к базам данных Jet (таким, как MDB-файлы
Access) или другим настольным базам данных ISAM или в том случае, когда требуется
использовать уникальные средства ядра Jet, такие как объединение данных в разных
форматах.
Применяйте
в клиентском приложении рабочую область ODBCDirect вместо рабочей области Jet
в следующих случаях:
если нужно только выполнить
запрос или хранимую процедуру на сервере баз данных, таком как SQL Server;
когда требуется воспользоваться
специфическими возможностями ODBCDirect, такими как пакетное обновление записей,
обновленные записи оптируются на локальном компьютере;
когда требуется асинхронное
выполнение запроса, запрос выполняется в фоновом режиме, не останавливая выполнение
других
Рис. 13.4.
Модель объектов доступа к данным для рабочей области Microsoft Jet
В табл. 13.4
описаны объекты доступа к данным. В первом столбце приведены объекты-семейства,
а во втором — объекты, являющиеся элементами соответствующего семейства, в третьем
— описание объекта. В последующих главах книги "вы встретитесь с примерами
использования объектной модели DAO.
Рис. 13.5.
Модель объектов доступа к данным для рабочей области ODBCDirect
Таблица
13.4.
Описание объектов доступа к данным
Семейство
Объект
Описание
Connections
Connection
Предоставляет
информацию о соединении с источником данных ODBC (используется только
в рабочей области ODBCDirect)
Containers
Container
Хранилище информации
об объекте предопределенного типа (используется только в рабочей области
Microsoft Jet)
Databases
Database DBEngine
Открытая база
данных Главный объект ядра баз данных Microsoft Jet
Documents
Document
Информация о
сохраненном объекте предопределенного типа (используется только в
рабочей области Microsoft Jet)
Errors
Error
Информация об
ошибках, ассоциированных с данным объектом
Fields
Field
Представляет
поле (столбец) таблицы, запроса, индекса, поле связи между таблицами
или запросами или поле набора записей
Groups
Group
Группа пользователей,
определяющая права доступа к данным (используется только в рабочей
области Microsoft Jet)
Indexes
Index
Определяет порядок
и уникальность значений в таблице (используется только в рабочей области
Microsoft Jet)
Parameters
Parameter
Параметр для
параметризованного запроса
Семейство
Объект
Описание
Properties
Property
Встроенная или
определенная пользователем характеристика (свойство)
QueryDef s
QueryDef
Описание хранимого
в базе данных запроса
Recordsets
Recordset
Набор записей
в базовой таблице или запросе
Relations
Relation
Связь между полями
таблиц или запросов (используется только в рабочей области Microsoft
Jet)
TableDefs
TableDef
Описание хранимой
в базе данных таблицы (используется только в рабочей области Microsoft
Jet)
Users
User
Бюджет пользователя,
определяющий права доступа к данным (используется только в рабочей
области Microsoft Jet)
Workspases
Workspace
Сеанс работы
с источником данных с помощью ядра баз данных Microsoft Jet