Объектная модель Microsoft DAO 3.6
Объекты доступа к данным (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
Семейство | Объект | Описание |
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 |
Таблица 13.4. Описание объектов доступа к данным