→ Пошук по сайту       Увійти / Зареєструватися
Знання Технология ADO в Delphi

Компоненты Delphi для поддержки ADO

Cвязь с объектом ADO в Delphi

На основе технологии ADO в Delphi созданы соответствующие компоненты-наборы TADOTable, TADOQuery, TADOStoredProc , повторяющие в функциональном отношении компоненты TTable, TQuery, TstoredProc, но не требующие развертывания и настройки на клиентской машине BDE.

Основным достоинством ADO является ее естественная ориентация на создание «облегченного» клиента. На машине сервера данных (это может быть файловый сервер в рамках файл/серверной технологии или машина с сервером данных - в технологии клиент/сервер) устанавливается так называемый провайдер данных - некоторая надстройка над специальной технологией OLE DB, «понимающая» запросы объектов ADO и «умеющая» переводить эти запросы в нужные действия с данными. Взаимодействие компонентов ADO и провайдера осуществляется на основе универсальной для Windows технологии ActiveX, причем провайдер реализуется как СОМ-сервер, а ADO-компоненты - как COM-клиенты. На машине сервера создается и размещается источник данных. В случае файл/серверных систем отдельные таблицы типа dBASE, FoxPro, Paradox и т.п. должны управляться соответствующим ODBC-драйвером,а в роли провайдера используется Microsoft OLE DB Provider for ODBC drivers. Если по каким-либо причинам не найден нужный драйвер файл/серверные таблицы можно перенести в формат MS Access. На их основе создается единый файл, содержащий все необходимые таблицы, индексы, хранимые процедуры и прочие элементы БД. Такой файл управляется машиной баз данных Microsoft Jet 4.0 Database Engine, а в роли провайдера используется Microsoft Jet 4.0 OLE DB Provider. Если используется промышленный сервер данных Oracle или MS SQL Server, данные не нуждаются в какой-либо предварительной подготовке, а в роли провайдера используется соответственно Microsoft OLE DB Provider for Oracle или Microsoft OLE DB Provider for SQL Server. Нетрудно обнаружить и явный недостаток такой технологии: ADO не может использоваться, если для соответствующей структуры данных (в частности, для БД многих популярных серверов - InterBase, Informix, DB2 и пр. не создан нужный провайдер или ODBC драйвер (однако уже существует ODBC драйвер для InterBase – прим. ред.)).


Схема связи с объектом ADO в Delphi

На машине клиента располагаются связные компоненты TADOConnection и компоненты-наборы данных TADOTable, TADOQuery, TADOStoredProc, а также не показанные на рисунке компоненты-наборы TADODataSet и командные компоненты TADOCommand. Каждый из этих компонентов может связываться с провайдером данных либо с помощью связного компонента TADOConnection, либо минуя его и используя собственное свойство ConnectionString. Таким образом, TADOConnection играет роль концентратора соединений с источником данных компонентов-наборов и в этом смысле подобен компоненту TDatabase в традиционной архитектуре с BDE.Компоненты-наборы TADODataSet в функциональном плане повторяют свойства уже известных из предыдущих версий Delphi компонентов TClientDataSet технологии MIDAS. Командные компоненты TADOCommand предназначены для реализации запросов на языке управления данными DDL (Data Definition Language), т.е. для реализации SQL-запросов, которые не возвращают данные (запросы типа CREATE, DROP, UPDATE и т.п.). Специальный компонент RDSConnection (не показан на рисунке) создан для упрощения связи с MS Internet Explorer и предназначен для разработки интранет-приложений. Компоненты-наборы с помощью хорошо известных по предыдущим версиям Delphi компонентов-источников TDataSource и визуализирующих компонентов TDBGrid, TDBMemo, TDBEdit и т.п. обеспечивают необходимый интерфейс с пользователем программы.

Замечание. Ничто не дается бесплатно - эта старая истина во многом относится и к ADO. Скорость доступа к данным с помощью СОМ-средств (а технология ActiveX, являющаяся краеугольным камнем ADO, целиком базируется на СОМ) в общем случае оказывается заметно ниже традиционного для Delphi механизма на основе BDE (для некоторых типичных случаев скорость уменьшается в десятки раз).

Установление связи с объектом ADO

Установление связи с объектом ADO является ключевым моментом всей технологии. Как уже отмечалось, каждый компонент НД имеет два свойства, с помощью которых он может установить связь с объектом ADO Connection и ConnectionString.

Связной компонент TADOConnection

Этот компонент осуществляет связь остальных компонентов с ADO. Для этих целей у него имеется строка ConnectionString. После того, как с помощью этой строки связь с данными установлена, на компонент могут ссылаться другие ADO-компоненты, разделяя установленную им связь.

Компонент TADOCommand

Этот компонент предназначен, в основном, для реализации SQL-запросов, не возвращающих никаких данных (подмножество Data Definition Language - язык определения данных языка структурированных запросов SQL). К предложениям DDL относятся практически все, которые не начинаются зарезервированным словом select.

Свойства, общие с BDE-компонентами

В состав ADО-компонентов входят четыре компонента-набора - TADODataSet, TADO-Table, TADOQuery и TADOStoredProc. Как и аналогичные BDЕ-ориентированные компоненты, они имеют общего родителя - абстрактный класс TDataSet, и, следовательно, большинство своих методов, свойств и событий они унаследовали от этого класса и разделяют их со своими BDE-аналогами

Специфичные свойства компонентов-наборов

ADO-наборы имеют непосредственного родителя TCustomAdoDataSet, от которого они унаследовали многие специфичные свойства. В этом разделе проводится общий обзор особенностей ADO-наборов, в последующих описываются наиболее важные свойства, методы и события класса TCustomADODataSet.

Методы класса TCustomADODataSet

Любопытной особенностью ADO-наборов являются инкапсулированные в них методы SaveToFile и LoadFromFile. В ADO эти методы используются как один из возможных механизмов обмена данными между разными компьютерами, а также для отложенной обработки данных...

Компонент TADODataSet

Этот компонент обеспечивает доступ к одной или нескольким ТБД с помощью запроса типа select. Компонент рассчитан на возврат набора данных, поэтому его нельзя использовать для выполнения подмножества операторов DDL.

Компонент TADOTable

Этот компонент является прямым аналогом популярного BDE-компонента ТТаblе. Также как ТТаblе, он способен получать и обслуживать НД, состоящий из записей единственной физической таблицы БД, имя которой содержит его свойство TableName.

Компонент TADOQuery

В отличие от TADOCommand, этот компонент преимущественно предназначен для получения набора записей из одной или нескольких таблиц БД. На самом деле, фактически он целиком повторяет функциональность компонента TQuery, т.к. в него включен специфичный метод ExecSQL, с помощью которого компонент может выполнять предложения DDL языка SQL.

Компонент TADOStoredProc

Компонент TADOStoredProc предназначен для исполнения хранимой процедуры сервера БД. Для этого он имеет свойство ProcedureName и методы Open и ЕхсесРгос.
загрузка...
Сторінки, близькі за змістом