Интерфейс ADO
Интерфейс ADO (Microsoft ActiveX Data Objects) представляет собой высокоуровневый программный интерфейс для доступа к OLE DB-интерфейсам, а в будущем – модель доступа к данным любых типов. Он также является частью универсального механизма доступа к данным Microsoft (Microsoft Universal Data Access) и позволяет манипулировать данными с помощью любых OLE DB-провайдеров, как входящих в состав Microsoft Data Access Components, так и произведенных сторонними производителями. Основой интерфейса ADO является набор объектов, используемых для соединения с источником данных, чтения, добавления, удаления и модификации данных.
Объектная модель ADO очень проста и понятна. Верхний уровень иерархии представляет объект ADO Connection, который применяется для установки связи с источником данных. Этот объект представляет единственную сессию и позволяет изменить параметры соединения с базой данных, а также начать или завершить транзакцию. Используя объект Connection, можно выполнять команды (например, SQL-запросы) с помощью метода Execute. А если команда возвращает набор данных, то автоматически создается объект Recordset, который возвращается в результате выполнения этого метода.
Объект Error используется для получения сведений об ошибках, возникающих в процессе выполнения. Объект Command представляет собой команду, которую можно выполнить в источнике данных. Команда может содержать SQL-предложение или вызов хранимой процедуры. В последнем случае для определения параметров процедуры может быть использована коллекция Parameters объекта Command.
Объект Recordset – это набор записей, полученных из источника данных. Он может быть использован для добавления, удаления, изменения, просмотра записей. Данный объект может быть открыт непосредственно или создан с помощью объектов Connection или Command.
Объект Field – это столбец в наборе данных, представленных объектом Recordset. Он может быть использован для получения значений конкретного поля, его модификации, а также извлечения метаданных, таких как имя колонки и тип данных.
Библиотека ADO 2.5 содержит два новых объекта Record и Stream. Объект Record представляет одну запись внутри объекта Recordset и может быть использован для работы с гетерогенными и иерархическими данными. Объект Stream представляет двоичные данные, связанные с объектом Record. Например, если объект Record представляет собой файл, то соответствующий объект Stream будет содержать данные этого файла.
Как уже говорилось, интерфейс ADO является высокоуровневой надстройкой над интерфейсов OLE DB. Проиллюстрируем связь этих интерфейсов и соответствующих объектов (более подробную информацию можно найти в Microsoft OLE DB Programmer's Reference):
• объект ADO Connection использует объекты OLE DB DataSource и Session. Транзакции поддерживаются с помощью интерфейсов ITransaction и ITransactionLocal, метод Execute использует метод Execute интерфейса ICommand или метод OpenRowset интерфейса IOpenRowset. Большинство свойств доступно с помощью IDBProperties. Объект Error поддерживается с помощью интерфейса IErrorRecords;
• объект ADO Command использует объект OLE DB Command и интерфейс ICommand. Коллекция Parameters объекта ADO Command доступна с помощью интерфейса ICommandWithParameters;
• объект ADO Recordset использует объект OLE DB Rowset. Он применяет интерфейсы IRowset, IRowsetLocate и IRowsetInfo для реализации большинства методов, свойств и коллекций. Объект Field использует интерфейс IColumnsInfo.
Начиная с версии 2.1, ADO содержит несколько расширений. Первое из них – ADO Extensions for Data Definition and Security (ADOX). ADOX представляет собой набор объектов, позволяющих манипулировать метаданными в базах данных и управлять объектами, отвечающими за безопасность.
Объекты ADOX представляют большинство основных объектов в типичных реляционных СУБД, и их свойства и методы могут быть использованы для создания этих объектов и манипуляции ими.
Объект Назначение
Catalog Представляет всю схему базы данных
Table Представляет таблицу в базе данных
Column Представляет колонку в таблице, индексе или ключе
Index Представляет индекс внутри таблицы
Key Представляет первичный или внешний ключ
Group Представляет группу пользователей
User Представляет индивидуального пользователя базы данных внутри группы
Procedure Представляет хранимую процедуру внутри базы данных
View Представляет view внутри базы данных
Еще одно расширение – ADO Multi-Dimensional Extensions (ADOMD). ADOMD – это набор объектов, позволяющих использовать многомерные данные в ADO-приложениях. Такие данные управляются OLAP-серверами (OLAP, Online Analytical Processing), которые широко применяются в системах принятия решений, где требуется статистический анализ больших объемов данных.
Объект Назначение
Catalog Представляет всю схему многомерной базы данных
CubeDef Представляет многомерный куб в базе данных
Dimension Представляет размерность внутри куба
Hierarchy Представляет иерархию внутри размерности
Level Представляет уровень иерархии
Cellset Представляет результат запроса к кубу
Cell Представляет ячейку в объекте CellSet
Axis Представляет одну из осей в объекте CellSet
Position Представляет позицию в объектах Cell или Axis
Member Представляет конкретное значение вдоль оси или уровня иерархии
Последнее из расширений – Jet and Replication Objects (JRO). JRO представляет собой набор объектов, специально предназначенных для использования совместно с Microsoft Jet OLE DB Provider. Его свойства позволяют создавать, модифицировать и синхронизировать реплики. Реплика – это копия базы данных, изменения в которой синхронизируются с главной базой данных (master database). Объект Replica используется для создания новых реплик, модификации свойств существующих реплик и синхронизации изменений с другими репликами. Объект JetEngine применяется для сжатия баз данных и обновления данных из кэша памяти.
Добавить комментарий