Модель объектов ActiveX для управления данными
Объекты управления данными ActiveX (ADO/ ActiveX Data Objects) предназначены для обеспечения доступа к источникам данных разных видов, от текстовых файлов до распределенных баз данных. ADO представляет собой объектно-ориентированный интерфейс для приложений, использующих OLE DB. OLE DB — это программный интерфейс, удовлетворяющий спецификации COM (Component Object Model, компонентная модель объектов), который предоставляет унифицированный способ доступа к различным источникам данных. Интерфейс OLE DB разрабатывался с целью получения оптимальной функциональности для приложений разных видов и поэтому не является простым в использовании. ADO — промежуточное звено между приложением и OLE DB, предоставляющее разработчикам приложений удобный объектно-ориентированный интерфейс.
Существует три объектных модели, которые вместе обеспечивают те функции работы с данными, которые реализуются объектами DАО:
- Microsoft ActiveX Data Objects 2.6 (ADODB);
- Microsoft ActiveX Data Objects Extensions for DDL and Security 2.6 (ADOX);
- Microsoft Jet and Replication Objects 2.6 (JRO).
Стандартный набор функций для работы с данными распределяется между этими тремя моделями следующим образом:
- Управление данными. Объектная модель ADODB обеспечивает вашему приложению доступ к источнику данных и возможность отбирать для просмотра и изменять эти данные. Однако она не предоставляет возможности изменять структуру таблиц и других объектов источника данных.
- Определение данных и защита. Объектная модель ADOX позволяет программно изменять структуру объектов в источнике данных, в частности добавлять и удалять таблицы, изменять структуру таблиц, создавать и изменять запросы, представления и хранимые процедуры, а также управлять схемой защиты данных: создавать группы пользователей и отдельных пользователей, наделять их требуемыми правами доступа к объектам.
- Репликация и службы ядра базы данных Jet. Объектная модель JRO позволяет создавать, модифицировать и синхронизировать реплики. Она была спроектирована специально для доступа к объектам Jet и, в отличие от моделей ADODB и ADOX, может работать только с базами данных Access.
Краткое описание объектов моделей ADO приведено в табл. 13.5—13.7.
Объект | Тип | Описание |
Connection | Объект | Открывает сеанс обмена данными |
Command | Объект | Представляет собой инструкцию SQL |
Parameter | Объект | Представляет собой параметр инструкции SQL |
Recordset | Объект | Представляет собой набор записей и позволяет осуществлять навигацию по записям и манипулировать с данными в нем |
Field | Объект | Представляет собой поле (столбец) в наборе записей Recordset |
Error | Объект | Представляет собой информацию об ошибке, произошедшей во время сеанса связи |
Property | Объект | Представляет характеристику (свойство) любого объекта ADO |
Errors | Семейство | Все объекты Error в этом семействе создаются в ответ на одну ошибку, произошедшую во время сеанса связи |
Parameters | Семейство | Содержит все объекты Parameter, ассоциированные с объектом Command |
Fields | Семейство | Содержит все объекты Field, ассоциированные с набором записей Recordset |
Properties | Семейство | Содержит все объекты Property, ассоциированные с объектом Connection, Command, Recordset или Field |
Record | Объект | Представляет собой каталог или файл |
Stream | Объект | Представляет собой содержимое файла |
Таблица 13.5. Объектная модель ADODB
Объект | Тип | Описание |
Catalog | Объект | Главный объект этой модели. Ссылается на источник данных и обеспечивает доступ ко всем объектам источника — таблицам, представлениям, процедурам, группам, пользователям |
Tables | Семейство | Семейство таблиц, содержащихся в источнике данных. Каждый объект Table этого семейства ссылается на одну таблицу |
Indexes | Семейство | Содержит все индексы таблицы. Каждый объект Index семейства ссылается на один из индексов |
Keys | Семейство | Содержит все ключи таблицы. Каждый объект Key семейства ссылается на один из ключей |
Columns | Семейство | Содержит объекты Column, которые ссылаются на столбцы в одном из объектов Table, Index, Key |
Groups | Семейство | Содержит все объекты Group каталога или пользователя. Каждый из объектов Group ссылается на бюджет группы в каталоге или пользователе |
Users | Семейство | Содержит объекты User, которые представляют собой бюджеты пользователей, имеющих права доступа к защищенной базе данных |
Procedures | Семейство | Содержит все хранимые процедуры в базе данных. Каждый объект Procedure семейства ссылается на одну из хранимых процедур |
Views | Семейство | Содержит все представления (view) в базе данных |
Таблица 13.6. Объектная модель ADOX
Иерархическая структура модели объектов ADOX представлена на рис. 13.6.
Рис. 13.6. Объектная модель ADOX
Объект | Тип | Описание |
JetEngine | Объект | Обеспечивает доступ к двум сервисам ядра базы данных Jet: сжатие базы данных и выгрузка данных из кэша в файл базы данных MDB |
Replica | Объект | Представляет собой копию реплицированной базы данных |
Filters | Семейство | Содержит набор объектов Filter, каждый из которых представляет собой набор записей, которые должны реплицироваться |
Таблица 13.7. Описание объектов JRO
Более подробное описание объектов JRO и их использования приведено в гл. 18.
В случае разработки многоуровневого клиент-серверного приложения для доступа к данным используется еще одна объектная модель — RDS (служба удаленного доступа к данным). Она включает три объекта, краткое описание которых приведено в табл. 13.8.
Объект | Тип | Описание |
RDS .DataSpace | Объект | Этот объект содержит метод, позволяющий создать объект (так называемый бизнес-объект) промежуточного сервера передачи данных. В качестве промежуточного сервера может выступать процедура, указанная пользователем, встроенная процедура, используемая по умолчанию, или библиотека динамической компоновки DLL, исполняемая в локальной сети, в Интернете или сети интранет |
RDSServer. DataFactory | Объект | Представляет собой встроенную программу — сервер данных, которая выполняет обработку данных и возвращает результат обработки |
RDS.DataControl | Объект | Этот объект может использоваться для следующих целей: автоматическое выполнение функций объектов RDS. DataSpace и RDSServer .DataFactory, выполнение обработки данных или возвращение результата с помощью встроенных служб RDS, представление результата обработки данных в виде совокупности значений для визуальных элементов управления (в форме) |
Таблица 13.8. Объектная модель RDS