технологія ado

У Delphi версій 5,6 і 7 підтримується технологія ADO (ActiveX Data Objects - об'єкти даних, побудовані як об'єкти ActiveX), яка посилено розвивається корпорацією Microsoft. На основі цієї технології створені відповідні компоненти-набори TADOTable, TADOQuery, TADOStoredProc, що повторюють в функціональному відношенні компоненти TTable, TQuery, TStoredProc, але не потребують розгортання і налаштування BDE на клієнтській машині.

Основні особливості використання технології ADO не залежить від архітектури БД: ця технологія характерна не тільки для файл-серверних БД, але також ц для клієнт-серверних і триланкових БД. Однак в цьому уроці (і в книзі взагалі) ми не будемо розглядати особливості компонентів TADOStoredProc і TRDSConnect ion, призначених для підтримки відповідно клієнт-серверної і триланкової архітектури, - якщо вас цікавлять ці питання, зверніться до документації та / або до вбудованої довідкової служби.

Основною перевагою технології ADO є її природна орієнтація на створення "полегшеного" клієнта. В рамках цієї технології на машині розробника БД встановлюються базові об'єкти MS ADO і відповідні компоненти Delphi (рис. 9.1), що забезпечують використання технології ADO (ці установки здійснюються автоматично при розгортанні Delphi). На машині сервера даних (це може бути файловий сервер в рамках файл-серверної технології або машина з сервером даних - в технології клієнт-сервер) встановлюється так званий провайдер даних - деяка надбудова над спеціальною технологією OLE DB, "розуміюча" запити об'єктів ADO і " вміє "переводити ці запити в потрібні дії з даними. Взаємодія компонентів ADO і провайдера здійснюється на основі універсальної для Windows технології ActiveX, причому провайдер реалізується як СОМ-сервер, а ADO-компоненти - як СОМ-клієнти.

На машині сервера створюється і розміщується джерело даних. У разі файл-серверних систем окремі таблиці типу 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.

технологія ado

Мал. 9.1. Реалізація технології ADO в Delphi

Якщо використовується промисловий сервер даних Oracle або MS SQL Server, дані не потребують будь-якої попередньої підготовки, а в ролі провайдера використовується відповідно Microsoft OLE DB Provider for Oracle або Microsoft OLE DB Provider for SQL Server. Неважко виявити і явний недолік такої технології: ADO не може використовуватися, якщо для відповідної структури даних (зокрема, для БД багатьох популярних серверів - InterBase, Informix, DB2 та ін.) Не створений потрібний провайдер або ODBC-драйвер.

На машині клієнта розташовуються зв'язкові компоненти TADOConnect ion і компоненти-набори даних TADOTable, TADOQuery, TADOStoredProc, а також не показані на малюнку компоненти-набори TADODataSet і командні компоненти TADOCommand. Кожен з цих компонентів може зв'язуватися з провайдером даних або за допомогою зв'язкового компонента TADOConnection, або минаючи його і використовуючи власне властивість ConnectionString. Таким чином, компонент TADOConnection грає роль концентратора сполук з джерелом даних компонентів-наборів, і в цьому сенсі він подібний до компоненту TDatabase в традиційній архітектурі з BDE.

Компоненти-набори TADODataSet в функціональному плані повторюють властивості Delphi компонентів TClientDataSet технології MIDAS. Командні компоненти TADOCommand призначені для реалізації запитів на мові визначення даних (Data Definition Language, DDL), тобто для реалізації SQL-запитів, які не повертають дані (запити типу CREATE, DROP, UPDATE і т. П.). Спеціальний компонент RDSConnection (не показаний на малюнку) створений для спрощення зв'язку з MS Internet Explorer і при розробці інтранет-додатків.

Компоненти-набори за допомогою компонентів-джерел TDataSource і візуалізуючих компонентів TDBGrid, TDBMemo, TDBEdit і т. П. Забезпечують необхідний інтерфейс з користувачем програми.

ПРИМІТКА Ніщо не дається безкоштовно - ця стара істина багато в чому відноситься і до ADO. Ско-кість доступу до даних за допомогою засобів СОМ (а технологія ActiveX, що є наріжним каменем ADO, повністю виходить з СОМ) в загальному випадку виявляється помітно нижче традиційного для Delphi механізму на основі BDE (як буде показано далі, для деяких типових випадків швидкість зменшується в десятки і сотні разів).