На главную страницу
Форум txt.version   




Статья :: Основы ADO

 

Основы ADO

Технология Microsoft ActiveX Data Objects обеспечивает универсальный доступ к источникам данных из приложений БД. Такую возможность предоставляют функции набора интерфейсов, созданные на основе общей модели объектов СОМ и описанные в спецификации OLE DB.

Технология ADO и интерфейсы OLE DB обеспечивают для приложений единый способ доступа к источникам данных различных типов (рис. 19.1). Например, приложение, использующее ADO, может применять одинаково сложные операции и к данным, хранящимся на корпоративном сервере SQL, и к электронным таблицам, и локальным СУБД. Запрос SQL, направленный любому источнику данных через ADO, будет выполнен.

Рис. 19.1. Схема доступа к данным через ADO

Возникает вопрос: каким образом источники данных смогут выполнить этот запрос?

За серверы БД беспокоиться не стоит, обработка запросов SQL — это их основная обязанность. Но как быть с файловыми последовательностями, электронными таблицами, файлами электронной почты и т. д.? Здесь на помощь приходят механизмы ADO и интерфейсы OLE DB.

OLE DB представляет собой набор специализированных объектов СОМ, инкапсулирующих стандартные функции обработки данных, и специализированные функции конкретных источников данных и интерфейсов, обеспечивающих передачу данных между объектами.

Согласно терминологии ADO, любой источник данных (база данных, электронная таблица, файл) называется хранилищем данных, с которым при помощи провайдера данных взаимодействует приложение. Минимальный набор компонентов приложения может включать объект соединения, объект набора данных, объект процессора запросов.

Примечание 

Объекты OLE DB создаются и функционируют так же, как и другие объекты СОМ. Каждому объекту соответствует идентификатор класса CLSID, хранящийся в системном реестре. Для создания объекта используется метод CoCreateinstance и соответствующая фабрика класса. Объекту соответствует набор интерфейсов, к методам которых можно обращаться после создания объекта.

В результате приложение обращается не прямо к источнику данных, а к объекту OLE DB, который "умеет" представить данные (например, из файла электронной почты) в виде таблицы БД или результата выполнения запроса SQL.

Технология ADO в целом включает в себя не только сами объекты OLE DB, но и механизмы, обеспечивающие взаимодействие объектов с данными и приложениями. На этом уровне важнейшую роль играют провайдеры ADO, координирующие работу приложений с хранилищами данных различных типов.

Такая архитектура позволяет сделать набор объектов и интерфейсов открытым и расширяемым. Набор объектов и соответствующий провайдер может быть создан для любого хранилища данных без внесения изменений в исходную структуру ADO. При этом существенно расширяется само понятие данных — ведь можно разработать набор объектов и интерфейсов и для нетрадиционных табличных данных. Например, это могут быть графические данные геоинформационных систем, древовидные структуры из системных реестров, данные CASE-инструментов и т. д.

Так как технология ADO основана на стандартных интерфейсах СОМ, которые являются системным механизмом Windows, это сокращает общий объем работающего программного кода и позволяет распространять приложения БД без вспомогательных программ и библиотек.

Примечание 

Нижеследующее описание спецификации OLE DB представлено в соответствии с официальной терминологией Microsoft для данной предметной области.

Спецификация OLE DB различает следующие типы объектов, которые будут рассмотрены ниже.

  •  Перечислитель (Enumerator) выполняет поиск источников данных или других перечислителей. Используется для обеспечения функционирования провайдеров ADO.
  •  Объект-источник данных (Data Source Object) представляет хранилище данных.
  •  Сессия (Session) объединяет совокупность объектов, обращающихся к одному хранилищу данных.
  •  Транзакция (Trasaction) инкапсулирует механизм выполнения транзакции.
  •  Команда (Command) содержит текст команды и обеспечивает ее выполнение. Командой может быть запрос SQL, обращение к таблице БД и т. д.
  •  Набор рядов (Rowset) представляет собой совокупность строк данных, являющихся результатом выполнения команды ADO.
  •  Объект-ошибка (Error) содержит информацию об исключительной ситуации.

Рассмотрим функциональные возможности основных объектов и интерфейсов OLE DB.

 

Основы ADO

страницы в данном разделе 
 ГЛАВА 19   ГЛАВА 19Использование ADO средствами Delphi
 Основы ADO  Перечислители
 Объекты соединения с источниками данных  Сессия
 Транзакции  Наборы рядов
 Команды  Провайдеры ADO
 Реализация ADO в Delphi  Компоненты ADO
 Механизм соединения с хранилищем данных ADO  Компонент TADOConnection
 Настройка соединения  Управление соединением
 Доступ к связанным наборам данных и командам ADO  Объект ошибок ADO
 Транзакции  Наборы данных ADO
 Класс TCustomADODataSet  Набор данных
 Курсор набора данных  Локальный буфер
 Состояние записи  Фильтрация
 Поиск  Сортировка
 Команда ADO  Групповые операции
 Параметры  Класс TParameters
 Класс TParameter  Компонент TADODataSet
 Компонент TADOTable  Компонент TADOQuery
 Компонент TADOStoredProc  Команды ADO
 Объект ошибок ADO  Пример приложения ADO
 Соединение с источником данных  Групповые операции
 Фильтрация  Сортировка
 Резюме   


Разделы
Околокомпьютерная литература (375)
Программирование (102)
Программы (75)
ОС и Сети (49)
Интернет (29)
Аппаратное обеспечение (16)
Базы данных (6)
Flutter
React Native
Xamarin

Содержание сайта (выборка)
Apache
Протоколы TCP/IP (принципы, протоколы и архитектура)

PHP, PELR, JSP
PHP
JavaServer Pages (JSP)

Базы данных
Основы mysql
СУБД INFORMIX
СУБД POSTGRES
Основы проектирования реляционных баз данных

HTML, javascript
Спецификация HTML 4.01
Каскадные Таблицы Стилей, Уровень 2
Клиентский JavaScript. Справочник.
JavaScript руководство пользователя
Серверный JavaScript 1.4. Руководство по Использованию.

Паскаль, C, C++, C#
GCC (примеры)
FAQ Валентинa Озеровa DELPHI
C





 
©  programming-lang.com  справочник программиста
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
©  http://ekb.programming-lang.com/tlg/  бесплатный телеграм бот
React Native
demo forum