Delphi и InterBase - братья навек

В данной статье речь пойдет о нововведениях в последней, пятой, версии Delphi, связанных с интеграцией средств для работы с базами данных InterBase. А именно: о наборе компонентов под общим названием InterBase Express (IBX). Также рассматривается вопрос о целесообразности их использования.

Не секрет, что среди SQL-серверов InterBase не занимает первое место по производительности. И Oracle, и MS SQL Server будут, конечно, покруче, но, несомненно, существуют задачи, для которых и InterBase неплохо подходит. Принимая во внимание доступность (серверное и клиентское ПО InterBase поставляется вместе с Delphi с лицензией на пять пользователей), простоту установки, конфигурирования и администрирования, можно сказать, что спектр возможных областей применения InterBase достаточно широк: от изучения с его помощью технологии клиент-сервер до использования в основе относительно крупной информационной системы.

Подавляющее большинство приложений для работы с БД, написанных с помощью Delphi, используют Borland Database Engine (BDE). BDE представляет собой БД-энжин и связующее ПО для Delphi и некоторых других продуктов. Если приложение работает с каким-либо сервером БД, то еще используется SQL Links - набор DLL, функционирующих под управлением BDE. SQL Links эмулирует навигационные функции конкретного SQL-сервера, разрешая работать с ним привычным для борландовских приложений способом.

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

InterBase Express не нуждается в BDE, он работает с СУБД InterBase без посредников. За счет этого достигается большая производительность и предоставляется доступ к продвинутым функциям сервера, недоступным ранее при использовании стандартных компонентов.

Следует отметить, что и прежде существовала возможность общаться с InterBase без помощи BDE. Можно было работать на уровне функций API-сервера, а можно было использовать продукты сторонних разработчиков, реализовавших, фактически, ту же функциональность, что и представляемый IBX. Например, набор компонентов FreeIBComponents, который, как видно из названия, является бесплатным, вместе со своими исходными текстами лежит на www.interbase.com/download, что говорит о признании его пригодности для определенных целей. Но лично меня отпугнули не уменьшающиеся от версии к версии списки исправляемых багов. Кстати, в исходниках InterBase Express написано, что именно набор FreeIBComponents "в некоторой степени лег в основу" IBX'а. Будем надеяться, что парни (а, может, и девушки) из Borland/Inprise серьезно поработали, и IBX не будет столь сырым.

К слову сказать, существует набор схожих компонентов и для СУБД Oracle (www.oracleobjects.com, вроде бы). Может, когда-нибудь в стандартной поставке Delphi появится и Oracle Express?

Далее следует описание новых IBX-компонентов, находящихся на вкладке InterBase. Хотя они имеют схожие имена с компонентами BDE, между ними существуют различия.

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

В отличие от BDE, IBX контролирует транзакции с помощью отдельного компонента, а именно - TIBTransaction. Это позволяет разделять транзакции и соединения с БД. Таким образом, можно использовать преимущества двухфазного подтверждения изменений для транзакций, охватывающих несколько соединений с базами данных, а также иметь несколько транзакций в рамках одного соединения. Используя в конкретных ситуациях наиболее оптимальные опции транзакций, приложения, естественно, только выигрывают в производительности.

Следующие два компонента являются аналогами TTable и TQuery.

TIBTable применяется для получения "живого" набора данных (НД) по таблице.

TIBQuery используется для выполнения DSQL-операторов, получения НД, состоящего из нужных полей и записей одной или нескольких таблиц.

TIBDataSet аналогичен TIBQuery, за исключением того, что поддерживает "живые" НД. Это возможно благодаря свойствам SelectSQL, RefreshSQL, InsertSQL, UpdateSQL и DeleteSQL, наличие которых позволяет отказаться от совместного использования компонента TIBUpdateSQL.

TIBStoredProc следует использовать для выполнения хранимых процедур. Входные параметры для процедуры передаются через свойство Params этого компонента. Туда же помещается и результат, если он не превышает одной записи. Для хранимых процедур, которые возвращают более одной записи или SELECT-процедур, используется TIBQuery или TIBDataSet.

TIBSQL применяется для запуска SQL-операторов и получения данных с большой скоростью без накладных расходов на буферизацию данных и общение с data-aware-элементами управления. Это наиболее прямой способ доступа к данным InterBase'овских БД. TIBSQL следует использовать для операций, которые должны быть быстрыми и необъемными. Под это определение подходят, например, операции описания метаданных и перекачки данных из одной БД в другую.

TIBUpdateSQL. Полная аналогия с TUpdateSQL. Используется для обновления данных в НД, предназначенных только для чтения, полученных с помощью TIBQuery.

TIBSQLMonitor окажется полезен при разработке диагностических утилит для мониторинга взаимодействий приложения и InterBase-сервера.

TIBDatabaseInfo используется для получения различной информации о БД. Такой, например, как список пользователей, подключенных к БД в текущий момент, интервал чистки, версия ODS.

TIBEvents используется для регистрации приложением своего интереса в событиях, о которых уведомляет сервер, и асинхронной обработки этих событий. Такая система позволяет реагировать на изменения в БД, производимые другими приложениями, параллельно работающими с данной БД, без прямого взаимодействия с ними и без нужды регулярно "спрашивать" БД.

Итак, как видно из обзора, IBX-компоненты, наряду с полной поддержкой традиционных для дельфийских приложений способов работы с БД, привносят новую полезную функциональность, что не может не радовать приверженцев Delphi и InterBase, которые теперь стали еще дружнее.

Николай АРАПОВ,
nikaragua@mail.ru

Версия для печатиВерсия для печати

Номер: 

13 за 2000 год

Рубрика: 

Software
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Страницы

Аватар пользователя Piligrim
Есть просто туча компонентов от сторонних производителей, как платных, так и бесплатных. И, пожалуй, треть из них - компоненты для работы с графикой. Тут только один совет: Если вы не собираетесь в дальнейшем перекомпилировать свой проект на следующие версии Delphi, то можно смело использовать любые. А вот если вы хотите в дальнейшем изменять Delphi, то тут следует внимательно изучить того, чьи это компоненты и сопровождает ли он свои компоненты от версии к версии. Что касается самих компонентов, то их полно на любых дельфийских дисках.
Аватар пользователя nnn
\Program Files\Borland\Delphi5\Help\Examples\Jpeg\

там лежит пример, как работать с jpeg.

Читайте матчасть.

Страницы