484______________________________________________Глава 9

фейс для работы, развязывающий пользователя от конкретной реализации базы
данных. Благодаря этому не надо менять приложение при смене реализации базы
данных. Приложение C++Builder никогда не обращается непосредственно к базе
данных, а только к BDE. Таким образом, общение с базами данных соответствует
схеме, приведенной на рис. 9.3.

Рис. 9.3

Схема связи приложения
C++Builder с базами данных

Приложение C++Builder, когда ему нужно связаться с базой данных, обраща-
ется к BDE и сообщает обычно псевдоним базы данных и необходимую таблицу в
ней. BDE реализован в виде динамически присоединяемых библиотек DLL (файлы
IDAPI01.DLL, IDAPI32.DLL). Они, как и любые библиотеки, снабжены API (Appli-
cation Program Interface — интерфейсом прикладных программ), названным
IDAPI (Integrated Database Application Program Interface). Это список процедур и
функций для работы с базами данных, которым и пользуются приложения.

BDE по псевдониму находит подходящий для указанной базы данных драй-
вер. Драйвер — это вспомогательная программа, которая понимает, как общаться
с базами данных определенного типа. Если в BDE имеется собственный драйвер со
ответствующей СУБД, то BDE связывается через него с базой данных и с нужной
таблицей в ней, обрабатывает запрос пользователя и возвращает в приложение ре-
зультаты обработки. BDE поддерживает естественный доступ к таким базам дан-
ных, как Microsoft Access, FoxPro, Paradox и dBase.

Если собственного драйвера нужной СУБД в BDE нет, то используется драйвер
ODBC. ODBC (Open Database Connectivity) — DLL, аналогичная по функциям BDE,
но разработанная фирмой Microsoft. Она хранится в файле ODBC.DLL. Поскольку
Microsoft включила поддержку ODBC в свои офисные продукты и для ODBC созда-
ны драйверы практически к любым СУБД, фирма Borland включила в BDE драй-
вер, позволяющий использовать ODBC. Правда, работа через ODBC осуществляет-
ся несколько медленнее, чем через собственные драйверы СУБД, включенные в
BDE, но благодаря связи с ODBC масштабируемость C++Builder существенно уве-
личилась и сейчас из C++Builder можно работать с любой сколько-нибудь значите-
льной СУБД.

BDE поддерживает SQL — стандартизованный язык запросов, позволяющий
обмениваться данными с SQL-серверами, такими, как Sybase, Microsoft SQL, Orac-
le, Interbase. Эта возможность используется особенно широко при работе на плат-
форме клиент/сервер.