ТЕХНОЛОГИЯ ДОСТУПА К ДАННЫМ BORLAND DATABASE ENGINE (BDE)
Долгое время использование BDE для доступа к БД было фактически монопольной технологией. BDE представляет обобщенный механизм работы сразу со многими SQL- серверами. Данная технология поддерживалась в основном в продуктах компании Borland: Delphi, C++ Builder и др.
Процессор БД Borland Database Engine представляет собой набор динамических библиотек. Их функции позволяют не только обращаться к данным, но и эффективно управлять ими на стороне приложения. В процессе работы библиотеки используют вспомогательные файлы языковой поддержки и информацию о настройках среды.
В составе BDE поставляются стандартные драйверы, обеспечивающие доступ к СУБД Paradox, dBASE, FoxPro и текстовым файлам. Локальные драйверы устанавливаются автоматически совместно с ядром процессора (рис. 14). Один из них можно выбрать в качестве стандартного драйвера, который имеет дополнительные настройки, влияющие на функционирование процессора БД.
Рис. 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.