≪
≫

ТЕХНОЛОГИЯ ДОСТУПА К ДАННЫМ BORLAND DATABASE ENGINE (BDE)

Долгое время использование BDE для доступа к БД было фактически монопольной технологией. BDE представляет обобщенный механизм работы сразу со многими SQL- серверами. Данная технология поддерживалась в основном в продуктах компании Borland: Delphi, C++ Builder и др.

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

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

Структура процессора БД BDE

Рис. 14. Структура процессора БД BDE

Доступ к данным серверов SQL обеспечивает отдельная система драйверов — SQL Links. С их помощью в Delphi можно без особых проблем разрабатывать приложения для серверов Oracle 8, Informix,

Sybase, DB2 и, естественно,

InterBase. Эти драйверы необходимо устанавливать дополнительно. Помимо этого, в BDE имеется очень простой механизм подключения любых драйверов ODBC (например, Microsoft Access) и создания на их основе сокетов ODBC.

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

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

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

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

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

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

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

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

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

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

Рассмотрев особенности технологии доступа к данным с помощью BDE и ее компонентов, можно сделать следующие выводы:

  • — процессор БД BDE реализует стандартные функции доступа к данным и является программным обеспечением промежуточного слоя между приложением и БД;
  • — при помощи системы драйверов и псевдонимов BDE обеспечивает универсальный способ доступа к данным;
  • — преимущество BDE, состоящее в универсальности подхода к работе с различными SQL-серверами, что значительно облегчает перенос приложений с одного сервера на другой, является также и его недостатком. Прежде всего, это невозможность воспользоваться уникальными особенностями каждого SQL-сервера;
  • — реализованная в BDE модель управления транзакциями не отвечает требованиям современных клиент-серверных приложений.
  • Ш ВОПРОСЫ ДЛЯ САМОКОНТРОЛЯ
  • 1. Перечислите основные технологии доступа к данным в Delphi.
  • 2. Опишите технологию доступа к данным BDE.
  • 3. Перечислите основные компоненты технологии BDE для подключения БД.
  • 4. Перечислите основные компоненты технологии BDE для работы с наборами данных.
  • 5. Выделите достоинства и недостатки использования технологии BDE.
 
Посмотреть оригинал