Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SUBD_OKR / Реферат Технологии доступа к данным в Delphi

.docx
Скачиваний:
46
Добавлен:
25.02.2016
Размер:
40.97 Кб
Скачать

Введение

Borland Delphi — интегрированная среда разработки ПО для Microsoft Windows на языке Delphi (ранее носившем название Object Pascal), созданная первоначально фирмой Borland и на данный момент принадлежащая и разрабатываемая Embarcadero Technologies.

Система программирования Borland Delphi включает в себя развитые средства для разработки приложений баз данных. С помощью этих средств можно создавать полноценные клиентские приложения баз данных (БД). Среди возможностей таких приложений можно назвать:

  • доступ к локальным и удаленным БД;

  • представление данных;

  • формирование отчетов;

  • оперативный анализ данных.

Доступ к БД можно осуществлять с помощью различных технологий. В Borland Delphi 7.0 доступны следующие технологии:

  1. BDE (Borland Database Engine). Базовая технология доступа к БД от фирмы Borland. Позволяет получать доступ к реляционным БД с помощью специальных BDE драйверов или через ODBC драйверы. Исторически является первой технологией доступа к БД в среде Borland Delphi.

  2. DbExpress. Более новая и совершенная технология доступа к БД от фирмы Borland. Появилась в 6-й версии Borland Delphi. По сравнению с BDE обеспечивает более быстрый и удобный доступ к данным.

  3. ADO (ActiveX Database Objects). Технология доступа к данным от фирмы Microsoft. В свою очередь базируется на технологии OLE-DB. Обеспечивает удобный и надежный доступ к данным, хотя и несколько более медленный, чем в технологиях BDE и dbExpress. Хорошо подходит для работы с системами управления базами данных (СУБД) от фирмы Microsoft (MS Access, MS SQL Server).

  4. InterBase. Специализированная технология доступа к серверу БД Borland InterBase. При работе с этой СУБД обеспечивает наивысшую производительность по сравнению с другими технологиями.

Кроме того, сторонними фирмами разработано множество других специализированных технологий доступа к БД конкретных СУБД, таких как Oracle, DB2 и других. Следует отметить, что принципы работы с БД с использованием любой из перечисленных технологий практически одинаковы. Поэтому получив навыки работы с одной из них, перейти к другим технологиям не составляет никакого труда.

BDE

Процессор баз данных Borland Database Engine представляет собой набор динамических библиотек, которые, собственно, и называются процессором БД. Их функции позволяют не только обращаться к данным, но и эффективно управлять ими на стороне приложения. В процессе работы библиотеки используют вспомогательные файлы языковой поддержки и информацию о настройках среды. Перечисленные функции реализованы в динамических библиотеках.

В составе BDE поставляются стандартные драйверы, обеспечивающие доступ к СУБД Paradox, dBASE, FoxPro и текстовым файлам. Локальные драйверы (рис. 1) устанавливаются автоматически совместно с ядром процессора. Один из них можно выбрать в качестве стандартного драйвера, который имеет дополнительные настройки, влияющие на функционирование процессора БД.

Рисунок 1: Структура процессора баз данных ВDЕ

Доступ к данным серверов SQL обеспечивает отдельная система драйверов — SQL Links. С их помощью в Delphi можно без особых проблем разрабатывать приложения для серверов Oracle 8, Informix, Sybase, DB2 и, естественно, InterBase. Эти драйверы необходимо устанавливать дополнительно. Помимо этого, в BDE имеется очень простой механизм подключения любых драйверов ODBC (к примеру, Microsoft Access) и создания на их основе сокетов ODBC.

Однако BDE не претендует на всеобъемлющую универсальность и имеет некоторые недостатки. Это, например, снижение скорости работы приложения, недостатки реализации некоторых драйверов и т. д. В документации к Delphi 7 содержится предупреждение, что после 2002 года фирма Borland перестанет поддерживать BDE и рекомендует использовать технологию dbExpress, которая будет рассмотрена позже.

Любое приложение Delphi, работающее с базами данных и написанное с использованием стандартных компонентов доступа к данным, обращается к данным и получает результат при помощи BDE. При этом механизм доступа к данным использует вызовы функций из API BDE.

Достаточно сложно представить себе такую ситуацию, когда возникает необходимость создания приложения, использующего только функции BDE, без применения компонентов доступа к данным VCL. Между тем, включение в программный код отдельных функций API BDE оправдано.

Все обращения из приложения к таблицам одной базы данных осуществляются через одно соединение, на которое замыкаются все компоненты доступа к данным, имеющие соответствующие значения свойства DatabaseName.

Все управление одиночным соединением с какой-либо базой данных в BDE осуществляется компонентом TDatabase. В процессе работы компонент активно использует параметры псевдонимов и драйверов BDE. Обычно компонент TDatabase размешается в модуле данных приложения.

Компоненты доступа к данным, используемые при разработке приложений BDE, располагаются на странице BDE Палитры компонентов. Их общими предками являются классы TBDEDataSet и TDBDataSet. Они обеспечивают работоспособность основных компонентов доступа к данным BDE — TTable, TQuery, TstoredProc.

  1. Класс TBDEDataSet является потомком класса TDataSet, его значение трудно переоценить: именно TBDEDataSet обеспечивает работоспособность важнейших механизмов набора данных за счет обращения к функциям BDE. Например, класс TBDEDataSet перекрывает абстрактные методы своего предка TDataSet, отвечающие за такие важнейшие операции, как чтение данных и сохранение изменений в базе данных, навигация по записям набора данных, фильтрация.

Класс TDBDataSet является непосредственным предком основных компонентов доступа к данным TTаblе, TQuery и TstoredProc. Новые свойства и методы класса обеспечивают соединение набора данных с базой данных и используют функции BDE.

Компонент TTаblе инкапсулирует таблицу реляционной базы данных, причем независимо от типа базы данных. Для доступа к данным компонент использует функции BDE.

Компонент TQuery реализует все основные функции стандартного компонента запроса. Прямым предком компонента является класс TDBDataSet.

Компонент TStoredProc обеспечивает использование в приложениях BDE хранимых процедур. Прямым предком компонента является класс TDBDataSet. Поэтому результатом выполнения хранимой процедуры может быть не только одиночный результат, но и полноценный набор данных.

InterBase

На странице InterBase Палитры компонентов содержатся компоненты доступа к данным, адаптированные для работы с сервером InterBase и объединенные названием InterBase Express. Компоненты из набора InterBase Express предназначены для работы с сервером InterBase версии не ниже 5.5. Их преимущество заключается в реализации всех функций за счет прямого обращения к API сервера InterBase. Благодаря этому существенно повысилась скорость работы компонентов.

Новые компоненты предоставляют разработчику новые возможности. Среди них:

  •  улучшенное управление транзакциями (для этого теперь предназначен отдельный компонент TiBTransaction);

  •  новые компоненты доступа к данным, позволяющие лучше решать распространенные задачи программирования (компоненты TiBDataSet, TIBSQL);

  •  возможность получения сведений о состоянии базы данных без прямого обращения к ее системным таблицам (компонент TiBDatabaseinfo);

  •  отслеживание состояния процессов выполнения запросов (компонент TIBSQLMonitor).

Для компонентов InterBase Express соединение с сервером БД осуществляет компонент TIBDatabase.

Механизм доступа к данным InterBase Express использует для обращений к серверу возможности клиентского ПО InterBase, которое должно быть инсталлировано на компьютере. При этом не требуется использовать BDE или любой другой механизм доступа к данным. Но в результате все компоненты InterBase Express, инкапсулирующие набор данных, должны обращаться к базе данных только через компонент соединения TIBDatabase. На самом деле эта особенность не является недостатком в клиентских приложениях, т.к. организация соединения через один специализированный компонент всячески приветствуется и является хорошим тоном в программировании.

Компонент TiBDatabase позволяет выполнять некоторые операции с метаданными базы данных.

В компоненте TiBDatabase отсутствуют средства управления транзакциями, которые вынесены в отдельный компонент TiBTransaction.

Компонент TIBTransaction инкапсулирует средства управления транзакцией при работе с сервером InterBase.

Так как компоненты InterBase Express используют для получения набора данных собственный механизм, то иерархия классов-предков включает только обязательный для всех наборов данных TDataSet класс TiBCustomDataSet, который, собственно, и инкапсулирует механизм доступа InterBase Express.

Для взаимодействия с сервером компоненты InterBase Express используют два класса, TIBXSQLDA и TIBXSQLVAR, которые инкапсулируют важные структуры API InterBase. Эти структуры обеспечивают передачу серверу параметров запроса и возвращение результата выполнения запроса.

Возможности компонентов TIBTable, TIBQuery, TIBStoredProc, TIBUpdateSQL мало чем отличаются от стандартных.

Компонент TIBTable реализует все возможности стандартного компонента, инкапсулирующего таблицу, плюс несколько дополнительных полезных свойств и методов.

Компонент TIBQuery выполняет все стандартные функции компонента запроса и наследует возможности класса TiBCustomDataSet.

Компонент TIBStoredProc полностью соответствует стандартному прототипу.

Компонент TIBDataSet предназначен для представления в приложениях наборов данных от сложных запросов. При этом набор данных остается редактируемым. Это достигается возможностью задать дополнительные запросы на удаление, изменение и добавление данных. Аналогичным образом работает стандартный компонент TUpdateSQL. Однако в компоненте TIBDataSet интегрированы одновременно и сам основной запрос, и вспомогательные запросы.

Компонент TIBSQL предназначен для быстрого выполнения запросов SQL, поэтому не обеспечивает связи с компонентами представления данных.

Клиентское приложение Delphi, работающее с сервером InterBase, имеет возможность отслеживать события, происходящие в базе данных и вызываемые другими процессами или приложениями. Для этого используется компонент TiBEvents. Он позволяет определить список необходимых событий и предоставляет разработчику простой механизм отслеживания возникающих на сервере событий.

Компонент TiBDatabaseinfo предоставляет информацию о текущем состоянии базы данных. Он обладает большим числом свойств и методов, содержащих разнообразные сведения о состоянии БД. Компонент очень прост в применении.

Компонент TiBSQLMonitor отслеживает выполнение запросов на сервере. Он позволяет получать в клиентском приложении сообщения от сервера о выполняемых им операциях.

dbExpress

Одной из проблем различных технологий доступа к данным, используемым в приложениях Delphi, является трудность распространения готовых приложений. Для BDE требуется отдельная установка, которая занимает порядка 15 Мбайт дискового пространства, а также специальная настройка псевдонимов. ADO предустановлена в операционной системе, но нуждается в настраиваемых провайдерах данных. При необходимости обновить версию ADO, дистрибутив вашего приложения "потяжелеет" более чем на 2 Мбайт.

Новая технология доступа к данным dbExpress обеспечивает взаимодействие приложения с серверами баз данных. Драйверы dbExpress используют для получения данных исключительно запросы SQL. При этом на клиентской стороне отсутствует кэширование данных, вследствие этого здесь применяются исключительно однонаправленные курсоры и отсутствует возможность прямого редактирования наборов данных.

Для функционирования компонентов dbExpress необходим только один драйвер, который взаимодействует напрямую с клиентским программным обеспечением для выбранного сервера БД. В поставку входят драйверы для первых четырех из списка серверов баз данных: DB2, InterBase, MySQL, Oracle и Microsoft SQL Server 2000.

Драйверы реализованы в виде динамических библиотек, а при необходимости могут быть прикомпилированы непосредственно к исполняемому файлу приложения. Поэтому проблема распространения совместно с приложением средств доступа к данным в случае с dbExpress снимается полностью. Естественно, на компьютере должно быть установлено клиентское ПО соответствующего SQL сервера.

Кроме того, технология dbExpress обеспечивает доступ к данным в кроссплатформенных приложениях для Windows и Linux, т. к. применяется и в Delphi и Kylix, а способы ее применения идентичны.

Таким образом, технология dbExpress является наилучшим решением для приложений, в которых необходим быстрый и необременительный просмотр данных серверов SQL. И вряд ли он подойдет для сложных клиент-серверных или многоуровневых приложений, обеспечивающих серьезную работу с данными.

Технология dbExpress представляет собой совокупность драйверов, компонентов, инкапсулирующих соединения, транзакции, запросы и наборы данных, а также интерфейсов, обеспечивающих универсальный доступ к функциям dbExpress.

Компоненты dbExpress располагаются в Палитре компонентов на одноименной странице.

Для создания соединения с сервером в рамках технологии dbExpress приложение должно использовать компонент TSQLConnection. Это обязательный компонент, все остальные компоненты связаны с ним и используют его для получения данных. Компонент TSQLConnection позволяет выполнять некоторые операции с подключенными наборами данных и следить за их состоянием.Подобно своим аналогам в BDE и ADO компонент TSQLConnection поддерживает механизм транзакций и делает это сходным образом.

Набор компонентов dbExpress, инкапсулирующих набор данных, вполне обычен и сравним с аналогичными компонентами BDE, ADO, InterBase Express. Это компоненты TSQLDataSet, TSQLTable, TSQLQuery, TSQLStoredProc. Компонент TSimpleDataSet также относится к рассматриваемой группе, но т. к. он обладает рядом специфических возможностей, его описание вынесено в отдельный пункт.

Необходимость создания легкой технологии доступа к данным, какой является dbExpress, наложила на эти компоненты ряд ограничений. Хотя общим предком всех рассматриваемых здесь компонентов является класс TDataSet, который обладает полным инструментарием для работы с набором данных, компоненты dbExpress используют только однонаправленные курсоры и не позволяют редактировать данные. Однонаправленные курсоры ограничивают навигацию по набору данных и обеспечивают перемещение только на следующую запись и возврат на первую. Также здесь недоступны любые операции, требующие буферизации данных — это поиск, фильтрация, синхронный просмотр.

Таким образом, для выключения ряда механизмов класса TDataSet понадобился еще один промежуточный класс TCustomSQLDataSet, который является общим предком для компонентов, инкапсулирующих запросы, таблицы и хранимые процедуры. Его задачей является не столько внесение новой функциональности, сколько корректное ограничение возможностей, заложенных в TDataSet.

Отображение данных при помощи компонентов со страницы Data Controls также ограничено. Нельзя использовать компоненты TDBGrid и TDBCtrlGrid, а в компоненте TDBNavigator не забудьте отключить кнопки возврата на одну позицию назад и перехода на последнюю запись. Также ничего хорошего не получится из попытки применить компоненты синхронного просмотра. Остальные компоненты можно использовать обычным способом.

Компонент TSQLDataSet является универсальным и позволяет выполнять запросы SQL (подобно TSQLQuery), просматривать таблицы целиком (подобно TSQLTable) или выполнять хранимые процедуры (подобно TSQLStoredProc). Для определения режима работы компонента используется свойство ConimandType.

Компонент TSQLTable предназначен для просмотра таблиц целиком и по основным функциям подобен своим аналогам TTаblе, TADOтаblе,TIBTаblе. Для получения табличного набора данных компонент TSQLTable самостоятельно формирует запрос на сервер, используя для этого возможности, унаследованные от предка TCustomSQLDataSet.

Компонент TSQLQuery повторяет функциональность своих аналогов в BDE, ADO, InterBase Express и позволяет выполнять на сервере запросы SQL клиента.

Компонент TSQLStoredProc инкапсулирует функциональность хранимых процедур для их выполнения в рамках технологии dbExpress. Он подобен другим своим аналогам.

Компонент TSimpleDataSet обеспечивает кэширование полученных данных и сделанных изменений на стороне клиента и последующую передачу их на сервер для фиксации. В отличие от компонента TClientDataSet, основным назначением которого является обслуживание набора данных, полученного от удаленного сервера при помощи серверных компонентов DataSnap, компонент TSimpleDataSet призван быть лишь средством редактирования набора данных в технологии dbExpress. Компонент использует двунаправленный курсор и позволяет редактировать данные, правда только в режиме кэширования. Таким образом, компонент TSimpleDataSet позволяет исправить основные недостатки технологии dbExpress.

Технология dbExpress основана на использовании четырех базовых интерфейсов, методы которых применяются во всех компонентах dbExpress. При серьезной работе с технологией или при проектировании собственных компонентов информация об этих интерфейсах будет полезна.

Интерфейс ISQLDriver инкапсулирует всего три метода для обслуживания драйвера dbExpress. Экземпляр интерфейса создается для соединения и обеспечивает его связь с драйвером.

Интерфейс ISQLConnection обеспечивает работу соединения. Он передает запросы серверу и возвращает результаты, создавая экземпляры интерфейса iSQLCommand; управляет транзакциями; поддерживает передачу метаданных при помощи интерфейса ISQLMetaData.

Интерфейс isQLCommand обеспечивает функционирование запроса dbExpress. Компоненты dbExpress, работающие с наборами данных, используют его для реализации своих методов.

Интерфейс ISQLCursor обладает совокупностью методов, которые помогут получить информацию о полях курсора, а также значения этих полей. Все эти методы имеют одинаковое представление. Для получения нужной информации необходимо задать порядковый номер поля в структуре курсора.

Наряду с обычными методами отладки исходного кода, в dbExpress существует возможность контроля запросов, проходящих на сервер через соединение. Для этого используется компонент TSQLMonitor.

ADO

Наряду с традиционными инструментами доступа к данным Borland Database Engine и ODBC в приложениях Delphi можно применять технологию Microsoft ActiveX Data Objects (ADO).

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

В Палитре компонентов Delphi есть страница ADO, содержащая набор компонентов, позволяющих создавать полноценные приложения БД, обращающиеся к данным через ADO.

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

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

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

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

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

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

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

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

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

  • Перечислитель (Enumerator) выполняет поиск источников данных или других перечислителей. Используется для обеспечения функционирования провайдеров ADO.

  • Объект-источник данных (Data Source Object) представляет хранилище данных.

  • Сессия (Session) объединяет совокупность объектов, обращающихся к одному хранилищу данных.

  • Транзакция (Trasaction) инкапсулирует механизм выполнения транзакции.

  • Команда (Command) содержит текст команды и обеспечивает ее выполнение. Командой может быть запрос SQL, обращение к таблице БД и т. д.

  • Набор рядов (Rowset) представляет собой совокупность строк данных, являющихся результатом выполнения команды ADO.

  • Объект-ошибка (Error) содержит информацию об исключительной ситуации.

Механизм доступа к данным через ADO и многочисленные объекты и интерфейсы реализованы в VCL Delphi в виде набора компонентов, расположенных на странице ADO.

Компонент TADOConnection вобрал возможности перечислителя, источника данных и сессии с возможностями обслуживания транзакций.

Текстовые команды ADO реализованы в компоненте TADOCommand.

Наборы рядов (нотация Microsoft) можно получить при помощи компонентов TADOTable, TADOQuery, TAOostoredProc. Каждый из них реализует способ доступа к конкретному типу представления данных в хранилище.

Компоненты доступа к данным ADO могут использовать два варианта подключения к хранилищу данных. Это стандартный метод ADO и стандартный метод Delphi. В первом случае компоненты используют свойство connectionstring для прямого обращения к хранилищу данных. Во втором случае используется специальный компонент TADOConnection, который обеспечивает расширенное управление соединением и позволяет обращаться к данным нескольким компонентам одновременно.

Компонент TADOConnection предназначен для управления соединением с объектами хранилища данных ADO. Он обеспечивает доступ к хранилищу данных компонентам ADO, инкапсулирующим набор данных.

Применение этого компонента дает разработчику ряд преимуществ:

  • все компоненты доступа к данным ADO обращаются к хранилищу данных через одно соединение;

  • возможность напрямую задать объект провайдера соединения;

  • доступ к объекту соединения ADO;

  • возможность выполнять команды ADO;

  • выполнение транзакций;

  • расширенное управление соединением при помощи методов-обработчиков событий.

На странице ADO Палитры компонентов Delphi, кроме компонентов соединения есть стандартные компоненты, инкапсулирующие набор данных и адаптированные для работы с хранилищем данных ADO (рис. 3). Это компоненты:

  • TADODataSet — универсальный набор данных;

  • TАоотаblе — таблица БД;

  • TADOQuery — запрос SQL;

  • TAoostoredProc — хранимая процедура.

Как и положено, для компонентов, инкапсулирующих набор данных, их общим предком является класс TDataSet, предоставляющий базовые функции управления набором данных.

Рисунок 3: Иерархия классов наборов данных ADO

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

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

Как уже рассказывалось выше, наборы данных ADO используют на клиентской стороне локальный кэш для хранения данных и сделанных изменений. Благодаря наличию этого кэша и появилась возможность реализовать групповые операции. В этом режиме все сделанные изменения не передаются немедленно источнику данных, а накапливаются в локальном кэше. Это повышает скорость работы и позволяет сохранять сразу группу модифицированных записей.

Из отрицательных сторон этого метода стоит отметить, что пока изменения находятся на клиенте, они недоступны другим пользователям. В данной ситуации могут возникать потери данных.

Многие компоненты ADO, инкапсулирующие набор записей, должны обеспечивать применение параметров запросов. Для этого в них используется специальный класс TParameters. Для каждого параметра из коллекции класса TParameters создается отдельный класс TParameter. Этот класс является наследником класса коллекции TCollection и инкапсулирует индексированный список отдельных параметров. Главное, для чего предназначен класс TParameters, — содержать список параметров. Класс TParameter инкапсулирует отдельный параметр.

Компонент TADODataSet предназначен для представления набора данных из хранилища данных ADO. Он прост в использовании, имея только несколько собственных свойств и методов, и применяет функции своего предка — класса TCustomADODataSet. Это единственный компонент ADO, инкапсулирующий набор данных, для которого опубликованы свойства, позволяющие управлять командой ADO. В результате компонент представляет собой гибкий инструмент, который позволяет (в зависимости от типа команды и ее текста) получать данные из таблиц, запросов SQL, хранимых процедур, файлов и т. д.

Для запросов SQL можно применять только язык Data Manipulation Language (использовать только SELECT).

Компонент ТАDOTаblе обеспечивает использование в приложениях Delphi таблиц БД, подключенных через провайдеры OLE DB. По своим функциональным возможностям и применению он подобен стандартному табличному компоненту.

В основе компонента лежит использование команды ADO, но ее свойства настроены заранее и изменению не подлежат.

Компонент TADOQuery обеспечивает применение запросов SQL при работе с данными через ADO. По своей функциональности он подобен стандартному компоненту запроса.