Технология ActiveX Data Objects (ADO) в Delphi

Концепция ADO

Окрыленная успехом технологии COM, Microsoft в середине девяностых приступила к замене технологии ODBC технологией OLE DB. Однако OLE DB представляет интерфейс системного уровня и предназначена для использования, в первую очередь, системными программистами. Она чрезвычайно сложна и требует от программистов досконального знания устройства операционной системы, что существенно снижает продуктивность работы. С целью облегчить жизнь прикладным программистам Microsoft создала для работы с OLE DB интерфейс высокого уровня, называемый ActiveX Data Object (ADO), ориентированный на использование в прикладных программах.

Начиная с середины 80-х программисты баз данных искали пути к независимости от технологий баз данных. Идея в том, чтобы использовать для доступа к различным источникам данных единый API, что освободило бы разработчиков от зависимости от конкретного процессора баз данных и дало бы возможность быстро приспосабливаться к изменению требований. Поставщики программного обеспечения разработали несколько решений этой проблемы, два наиболее значимых — открытая спецификация доступа к базам данных фирмы Microsoft, Open Database Connectivity (ODBC) и независимый прикладной программный интерфейс фирмы Borland, Independent Database Application Programming Interface (IDAPI), более известный как процессор баз данных Borland, Borland Database Engine (BDE). Технология ADO во многом похожа на BDE. В конце концов, они обе проектировались для решения схожих проблем. Обе технологии поддерживают навигацию по наборам данных, оперирование с наборами данных, обработку транзакций и кэшированные обновления (в ADO они называются пакетными обновлениями), так что концепции и способы работы с ADO весьма похожи на работу с BDE. Несмотря на это, существуют и отличия. ADO — более новая технология, благодаря чему она лучше, чем BDE, отвечает требованиям сегодняшнего дня и не несет с собой множество устаревших обременений. Самое существенное, возможно, то, что ADO более широко интерпретирует понятие «данные». BDE работает только с «прямоугольными» данными, то есть данными, представленными в виде строк и столбцов, что идеально при работе с базами данных. При помощи ADO мы также можем обращаться к таким данным, но, кроме того, существует возможность работы и с непрямоугольными данными, такими как представляющие каталоги структуры, документы, web-узлы и электронная почта.

 

Базовые объекты ADO

 

Базовых объектов семь: Connection, Recordset, Command, Parameter, Field, Error и Property. Компоненты ADO в палитре компонентов Delphi представляют собой надстройки над базовыми объектами, экспонируя большинство их свойств, методов и событий в привычном для Delphi виде.

Базовые объекты обычно сопровождаются коллекциями связанных с ними объекты. Например, с Connection может быть связан один или несколько объектов Еrror, фиксирующих ошибки установления связи. С Recordset - набор объектов Field, каждый из которых определяет единственное поле результирующего набора данных. С Command - один или несколько объектов Parameter, конкретизирующих выполнение метода Execute этого объекта, и коллекция объектов Error и т.д. В связи с этим говорят об основных (Connection, Recordset, Command) и вспомогательных (Error, Field, Parameter, Property) объектах ADO.

Connection

Объект Connection предназначен для установления соединения с данными - это его главная задача. Кроме того, объект обеспечивает механизм транзакций. С объектом связан набор объектов Error, в котором фиксируются все ошибки, связанные с работой Connection. Кроме того, на него может ссылаться произвольное количество объектов Command и Recordset. В этом случае Connection управляет транзакциями этих объектов.

Recordset

Объект Recordset представляет собой текущий набор данных. Он может быть получен только после выполнения метода Execute какого-либо объекта Command. С объектом автоматически связывается набор объектов Field, в которых описываются все поля НД. Recordset способен хранить нужные записи, перемещаться по ним, добавлять, уничтожать и редактировать записи как в обычном режиме (при одновременном изменении физических ТБД), так и в пакетном режиме (т.е. при кэшировании данных). При создании объекта автоматически создается и связанный с ним курсор, обеспечивающий просмотр, редактирование и изменение записей.

Command

С помощью объекта Command пользователь может выполнить над данными любую SQL-команду. С ним может быть связан набор объектов Parameter, в котором описываются соответствующие параметры, необходимые для выполнения запроса. Характерной особенностью объекта является возможность асинхронного выполнения связанной с ним команды. При обнаружении ошибки с объектом связывается своя коллекция объектов Error.

Parameter

Объект Parameter определяет единственный параметр, который будет использоваться при выполнении метода Execute объекта Command - его тип, размер и использование (входной, выходной, входной и выходной или только для чтения). При необходимости с Command можно связать коллекцию объектов Parameter для указания множества параметров.


Error

Коллекция объектов Error хранит все ошибки, связанные с работой остальных объектов и, прежде всего, Connection, Command и Recordset.

Field

Этот объект хранит всю необходимую информацию об одном поле НД. Поскольку обычно НД содержит несколько полей, с объектом Recordset связана коллекция объектов Field. С любым полем Field можно связать произвольную коллекцию объектов Property, определяющих индивидуальные характеристики поля.

Property

Объект Property может быть связан с любым другим объектом ADO, кроме объектов Connection и Error. Он может хранить как статические, так и динамические свойства. Статических (т.е. заранее заданных) свойств у объекта всего четыре: Name, Type, Value, Attributes. Остальные свойства - динамически и создаются в ходе выполнения программы. В объекте Property задаются некоторые индивидуальные характеристики связанного с ним объекта ADO.

 





double arrow
Сейчас читают про: