Архитектура и функции BDE
BDE представляет собой набор динамических библиотек, которые "умеют" передавать запросы на получение или модификацию данных из приложения в нужную базу данных и возвращать результат обработки. В процессе работы библиотеки используют вспомогательные файлы языковой поддержки и информацию о настройках среды.
В составе BDE поставляются стандартные драйверы, обеспечивающие доступ к СУБД Paradox, dBASE, FoxPro и текстовым файлам. Локальные драйверы (рис. 16.1) устанавливаются автоматически совместно с ядром процессора. Один из них можно выбрать в качестве стандартного драйвера, который имеет дополнительные настройки, влияющие на функционирование процессора БД.
Рис. 16.1. Структура процессора баз данных ВОЕ
Доступ к данным серверов SQL обеспечивает отдельная система драйверов — SQL Links. С их помощью в Delphi можно без особых проблем разрабатывать приложения для серверов Oracle 8, Informix, Sybase, DB2 и, естественно, InterBase. Эти драйверы необходимо устанавливать дополнительно.
Помимо этого, в BDE имеется очень простой механизм подключения любых драйверов ODBC (к примеру, Microsoft Access) и создания на их основе сокетов ODBC.
Примечание
С точки зрения пользователя процесс подключения локального драйвера и драйвера SQL Links практически не отличается, за исключением деталей настройки. Настройка драйверов и собственных параметров BDE осуществляется при помощи специальной утилиты — BDE Administrator и рассматривается далее в этой главе.
В состав BDE входят следующие функциональные подсистемы.
- Администратор системных ресурсов управляет процессом подключения к данным — при необходимости устанавливает нужные драйверы, а при завершении работы автоматически освобождает занятые ресурсы. Поэтому BDE всегда использует ровно столько ресурсов, сколько необходимо.
- Система обработки запросов обеспечивает выполнение запросов SQL или QBE от приложения к любым базам данных, для которых установлен драйвер, даже если сама СУБД не поддерживает прямое использование запросов SQL.
- Система сортировки является запатентованной технологией и обеспечивает очень быстрый поиск по запросам SQL и через стандартные драйверы аля Paradox и dBASE.
- Система пакетной обработки представляет собой механизм преобразования данных из одного формата в другой при выполнении операций над целыми таблицами. Эта система использована в качестве основы для компонента TBatcMove и утилиты DataPump (автоматического переноса структур данных между базами данных), входящей в стандартную поставку BDE.
- Менеджер буфера управляет единой для всех драйверов буферной областью памяти, которую одновременно могут использовать несколько драйверов. Это позволяет существенно экономить системные ресурсы.
- Менеджер памяти взаимодействует с ОС и обеспечивает эффективное использование выделяемой памяти. Ускоряет работу драйверов, которые для получения небольших фрагментов памяти обращаются к нему, а не к ОС. Дело в том, что менеджер памяти выделяет большие объемы оперативной памяти и затем распределяет ее небольшими кусками между драйверами согласно их потребностям.
- Транслятор данных обеспечивает преобразование форматов данных для различных типов БД.
- Кэш BLOB используется для ускорения работы с данными в формате BLOB.
- SQL-генератор транслирует запросы в формате QBE в запросы SQL.
- Система реструктуризации обеспечивает преобразование наборов данных в таблицы Paradox или dBASE.
- Система поддержки драйверов SQL повышает эффективность механизма поиска при выполнении запросов SQL.
- Таблицы в памяти. Этот механизм позволяет создавать таблицы непосредственно в оперативной памяти. Используется для ускорения обработки больших массивов данных, сортировки, преобразования форматов данных.
- Связанные курсоры обеспечивают низкоуровневое выполнение межтабличных соединений. Позволяют разработчику не задумываться над реализацией подобных связей при работе на уровне VCL — для этого достаточно установить значения нескольких свойств.
- Менеджер конфигурации обеспечивает разработчику доступ к информации о конфигурации драйверов.
Таблица 16.1. Ядро процессора баз данных ВОЕ 5
Имя файла |
Назначение |
IDAPI32.DLL |
Базовая динамическая библиотека ВОЕ |
IDPROV.DLL |
Динамическая библиотека, отвечающая за работу серверной части приложения |
BLW32.DLL |
Динамическая библиотека, обеспечивающая поддержку драйверов национальных языков |
IDBAT32.DLL |
Динамическая библиотека с функциями межтабличного переноса данных |
IDQBE32.DLL |
Динамическая библиотека, обеспечивающая работу запросов по примеру (Query By Example, QBE) |
IDSQL32.DLL |
Динамическая библиотека, обеспечивающая обработку запросов SQL |
IDASCI32.DLL |
Динамическая библиотека, обеспечивающая работу драйвера текстовых файлов |
IDPDX32.DLL |
Динамическая библиотека, обеспечивающая работу драйвера Paradox |
IDDBAS32.DLL |
Динамическая библиотека, обеспечивающая работу драйвера dBASE |
DODBC32.DLL |
Динамическая библиотека, обеспечивающая работу драйвера сокета ODBC |
IDR20009.DLL |
Динамическая библиотека ресурсов, содержащая сообщения об ошибках |
IDDA032.DLL |
Динамическая библиотека, обеспечивающая работу драйверов Microsoft Access 95 и Jet Engine 3.0 |
IDDA3532.DLL |
Динамическая библиотека, обеспечивающая работу драйверов Microsoft Access 97 и Jet Engine 3.5 |
IDDR32.DLL |
Динамическая библиотека для работы с Репозиторием данных |