BorlandDatabaseEngine, архитектура BDE

Процессор баз данных фирмы Borland (Borland Database Engine, BDE) — это совокупность файлов динамически присоединяемых библиотек (*.dll) и набора драйверов, обеспечивающих доступ к данным.

BDE представляет собой механизм доступа к данным, который может использоваться одновременно несколькими приложениями. BDE содержит мощную библиотеку вызовов API Windows для создания, реструктуризации, обновления данных и других манипуляций с локальными и удаленными базами данных. API, Application Programming Interface Windows — это интерфейс разработки приложений Windows.

Таким образом, BDE обеспечивает единство доступа к разнообразным серверам баз данных. В зависимости от используемой версии Delphi вы можете с помощью BDE обращаться к локальным базам данных типа Paradox, dBase, FoxPro и Microsoft Access. Кроме того, с помощью драйверов SQL Links (только в версии Delphi 7; Enterprise) вы можете работать с удаленными серверами баз данных, такими как InterBase, Oracle, Sybase, Informix, Microsoft SQL Server и DB2. BDE разработан для использования не только в среде Delphi. Его применяют также C++ Builder, IntraBuilder, Paradox for Windows и Visual dBASE for Windows.

ПРИМЕЧАНИЕКомпания Borland отказывается от дальнейшего использования SQL Links. Вместо SQL Links предлагается использовать технологию dbExpress.

DbExpress представляет собой кросс-платформенный независимый от используемой базы данных механизм, обеспечивающий выполнение динамических SQL-запросов. При его посредстве организуется общий интерфейс для доступа к различным SQL-серверам. Для каждого из поддерживаемых серверов dbExpress имеет драйвер, который действует как независимая библиотека dbExpress для выполнения запросов и хранимых процедур. Драйверы dbExpress доступны как из среды Windows в виде файлов *.dll, так и в среде Linux (файлы *.so). dbExpress не задействует все возможности BDE, но является более простым и удобным при распространении собственного продукта. Ядро dbExpress содержит четыре интерфейса:

· ISQLDriver — инициализирует механизм и захватывает необходимые ресурсы;

· ISQLConnection — устанавливает соединение с базой данных;

· ISQLCommand — обеспечивает выполнение методов для SQL-запросов и хранимых процедур;

· ISQLCursor — содержит данные и метаданные, возвращаемые запросом или при выполнении хранимой процедуры.

Все выше перечисленные интерфейсы содержаться в модуле DBXpress.pas.

Приведем список программных компонентов, которые обеспечивают работу BDE.

· Ядро BDE — файлы, составляющие ядро механизма BDE (по умолчанию устанавливаются в папку Program Files\Common Files\Borland Shared\BDE):

o IDAPI32.DLL - главный файл BDE;

o BLW32.DLL — драйвер поддержки национальных языков;

o IDBAT32.DLL — осуществляет пакетные операции;

o IDQBE32.DLL — механизм запросов QBE;

o IDWQL32.DLL — механизм запросов SQL;

o IDASCII32.DLL — драйвер ASCII для работы с текстовым форматом таблиц;

o IDPDX32.DLL-драйвер Paradox;

o IDDBAS32.DLL-драйвер dBase;

o IDODBC32.DLL — драйвер шкетов ODBC (позволяет использовать ODBC 3.0);

o IDR20009.DLL — файл ресурса сообщений об ошибках;

o IDDA032.DLL — драйвер для Microsoft Access 95 и Jet Engine 3.0;

o IDDA3532.DLL — драйвер для Microsoft Access 97 и Jet Engine 3.5;

o IDDR32.DLL — хранилище данных;

o BDEADMIN.EXE — утилита BDE Administrator, предназначенная для управления информацией о настройках, находящейся в системном реестре Windows, и о псевдонимах, содержащейся в файле IDAPI.CFG;

o BDEADMIN.HLP — файл помощи для утилиты BDE Administrator;

o BDEADMIN.CNT — таблица содержания файла BDEADMIN.HLP;

o BDE32.HLP — файл справки по BDE;

o BDE32.CNT - таблица содержания файла BDE32.HLP;

o IDAPI.CFG — файл содержит специфичную конфигурацию BDE, а также сведения о первоначальных псевдонимах баз данных;

o *.BTL — служебная информация;

o CHARSET.CVB — информация о преобразованиях наборов символов.

· Функции BDE API — набор функций для управления средой, конфигурацией, обработкой ошибок, работы с индексами, таблицами, транзакциями и т. д.

· BDE Administrator — удобное средство для конфигурирования BDE: для регистрации драйверов и псевдонимов, задания формата данных и настройки драйверов BDE. Входит в состав ядра BDE.

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

· Механизм запросов — средство выполнения запросов ANSI SQL 92. Включает в себя механизм запросов QBE (Query By Example, запрос по примеру).

· Драйверы баз данных — пять стандартных драйверов баз данных различных форматов: Paradox, dBase, FoxPro, Microsoft Access и ASCII. Входят в состав ядра BDE.

· Дополнительные драйверы — драйверы для поддержки других баз данных, которые могут подключаться по мере необходимости, а именно для InterBase, DB2, Informix, Oracle, Sybase и Microsoft SQL Server.

· Связи ODBC — обеспечивают доступ к любым наборам данных, для которых были установлены драйверы ODBC.

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

Если вы используете в своем приложении BDE, то при распространении готового продукта вам придется включить в комплект поставки и BDE, хотя это и увеличивает объем дистрибутива. С другой стороны, на одном компьютере достаточно присутствия всего одной копии BDE. Причем желательно, чтобы имеющаяся версия была как можно более поздней. Но если вы хотите использовать различные версии BDE для разных программ, то каждую из них нужно размещать в той папке, которая является рабочей для данного приложения. Вообще говоря, о том, как приложение ищет главный файл BDE (IDAPI32.DLL), можно сказать следующее: сначала проверяется папка, в которой установлено приложение. Если там файл не найден, то происходит обращение к ключу реестра Windows HKEY_LOCAL_MACHINE/ SOFTWARE/Borland/Database Engine/DLLPATH/xxxxx. Если в реестре нет информации о местонахождении файла, производится дополнительный поиск в такой последовательности:

· проверяется текущая папка;

· если файл не найден, то сканируется папка System;

· если снова файл не найден, проверяется папка Windows;

· наконец, анализируются описания PATH в файле Autoexec.bat.