<<
>>

Лекция 5.1. Механизмы доступа к данным в среде Delphi

Средство быстрой разработки приложений Delphi использует универсальный механизм доступа к данным, реализованный в виде библиотек и дополнительных модулей, называемых драйверами или провайдерами.

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

Достоинством универсальных механизмов является возможность применения одного и того же абстрактного API, для доступа к разным типам СУБД. Поэтому приложения, использующие универсальные механизмы доступа к данным, легко модифицировать, если необходима смена СУБД. При этом нередко модификация затрагивает не код приложения, а настройки доступа к данным, содержащиеся в реестре или внешних файлах. Однако за подобную универсальность приходится платить невозможностью доступа к уникальной функциональности, специфичной для конкретной СУБД, снижением производительности приложений и усложнением процедуры поставки приложения – ведь в его состав нужно включать библиотеки, ответственные за реализацию универсальных механизмов, драйверы для тех или иных СУБД, а также обеспечивать настройки, необходимые для их правильного функционирования.

Наиболее популярными среди универсальных механизмов доступа к данным являются:

· Open Database Connectivity (ODBC).

· OLE DB.

· ActiveX Data Objects (ADO).

· Borland Database Engine (BDE).

Все вышеперечисленные механизмы доступа, так или иначе, поддерживаются в Delphi.

Универсальные механизмы ODBC, OLE DB и ADO фирмы Microsoft представляют собой по существу промышленные стандарты. Механизм доступа BDE фирмы Borland, так и не стал промышленным стандартом, но достаточно широко используется разработчиками и поддерживается в Delphi на уровне компонентов и классов.

ODBC

ODBC (Open Database Connectivity) — широко распространенный программный интерфейс фирмы Microsoft, удовлетворяющий стандартам ANSI и ISO для интерфейсов обращений к базам данных CLI (Call Level Interface).

Для доступа к данным конкретной СУБД с помощью ODBC, кроме клиентской части этой СУБД, нужен ODBC Administrator (позволяющий создать и определить источники данных доступные на компьютере) и ODBC-драйвер для доступа к СУБД. ODBC-драйвер является динамической библиотекой (DLL), которую клиентское приложение может загрузить в свое адресное пространство и использовать для доступа к источнику данных. Для использования какой-либо СУБД необходимо использовать специальный ODBC-драйвер, предназначенный для конкретной СУБД.

С помощью ODBC можно манипулировать данными любой СУБД и даже данными, не имеющими прямого отношения к БД, если для них имеется ODBC-драйвер.

Спецификация ODBC подразумевает использование нескольких стандартов на ODBC-драйверы (обычно в этом случае употребляются термины Level 1, Level 2 и т.д.). Эти стандарты отличаются различной функциональностью, которая должна быть реализована в таком драйвере. Например, драйверы, соответствующие стандарту Level 1, не обязаны поддерживать работу с хранимыми процедурами, а некоторые ODBC-драйверы не поддерживают двухфазное завершение транзакций (применяемое в том случае, когда требуется согласованное изменение данных в нескольких различных серверных СУБД).

OLE DB и ADO

OLE DB и ADO – часть универсального механизма доступа к данным Microsoft (Microsoft Universal Data Access), позволяющая осуществить доступ, как к реляционным, так и к нереляционным источникам данных, таким как файловая система, данные электронной почты, многомерные хранилища данных и др.

Microsoft ActiveX Data Objects (ADO) – это набор библиотек, содержащих COM-объекты, реализующие прикладной программный интерфейс для доступа к таким данным и используемые в клиентских приложениях. ADO использует библиотеки OLE DB, предоставляющие низкоуровневый интерфейс для доступа к данным. OLE DB предоставляет доступ к данным с помощью COM-интерфейсов. Можно также использовать OLE DB непосредственно, минуя ADO.

Для доступа к источнику данных с помощью OLE DB требуется, чтобы на компьютере, где используется клиентское приложение, был установлен OLE DB-провайдер для данной СУБД.

OLE DB-провайдер представляет собой DLL-библиотеку. Для каждого типа СУБД нужен собственный OLE DB-провайдер, так как эти провайдеры базируются на функциях клиентских API, разных для различных СУБД.

Среди OLE DB-провайдеров для разных источников данных имеется специальный провайдер Microsoft OLE DB Provider for ODBC Drivers. Этот провайдер использует не API клиентской части какой-либо СУБД, а интерфейс ODBC API, поэтому он применяется вместе с ODBC-драйвером для выбранной СУБД.

Отметим, что ADO становится все более популярным способом доступа к данным, так как входит в состав таких широко используемых продуктов, как Microsoft Office 2000 и Microsoft Internet Explorer 5.0, а также включен в ядро операционных систем семейства Windows.

BDE

BDE (Borland Database Engine) – универсальный механизм доступа к данным, применяемый в средствах разработки фирмы Borland (а именно – Delphi и C++Builder), а также в некоторых других продуктах, например Corel Paradox, Corel Quattro Pro, Seagate Software Crystal Reports..

BDE – это наследник библиотеки Paradox Engine, созданной для Borland Pascal и Borland C++ для доступа к таблицам СУБД Paradox. Вскоре после создания Paradox Engine компанией Borland было разработано несколько библиотек-драйверов под общим названием SQL Links. Эти библиотеки расширили функциональность BDE и позволили реализовать доступ к данным dBase, ODBC-источникам, а также наиболее популярным серверным СУБД. Позже к этому набору были добавлены библиотеки для доступа к Access и FoxPro.

Механизм BDE представляет собой программную прослойку между прикладной программой и БД. Запрос из приложения передается прослойке BDE, который использует драйверы для непосредственной работы с соответствующей БД. Физически BDE представляет собой набор библиотек доступа к данным, реализующих BDE API – набор функций для манипуляции данными, вызываемых из приложения. Эти функции, в свою очередь, могут обращаться к функциям клиентского API (в случае, например, Oracle, Informix, IB Database) или ODBC API (Access 2000, Microsoft SQL Server 7.0, любые ODBC-источники), а также непосредственно манипулировать файлами некоторых СУБД (dBase, Paradox).

Для доступа к БД с помощью BDE на компьютере, содержащем клиентское приложение, должны быть установлены библиотеки BDE общего назначения, а также BDE-драйвер для данной СУБД. В случае серверных СУБД такие драйверы носят название SQL Links. Эти драйверы содержат BDE API – стандартный набор функций, созданных на основе функций клиентских API соответствующих СУБД.

Среди BDE-драйверов имеется драйвер, созданный с использованием ODBC API, – так называемый ODBC Link, который применяется вместе с ODBC-драйвером для выбранной СУБД.

В отличие от ODBC-драйверов и OLE DB-провайдеров, выпускаемых как производителями СУБД, так и многими сторонними производителями, BDE-драйверы производятся только самой компанией Inprise.

Реализация доступа к популярным СУБД средствами BDE

· Для доступа к данным Paradox, dBase и ASCII используют BDE-драйверы прямого доступа и обеспечивающие хорошую производительность, при этом необходимо установить BDE на компьютеры, где эти приложения будут эксплуатироваться.

· Доступ к СУБД MS Access 9х реализуется через BDE-драйвер прямого доступа, которые можно использовать при наличии библиотек Microsoft Jet Engine, входящих в MS Access и Microsoft Visual FoxPro. Эти драйверы не работают с данными Access 2000.

Для доступа к данным MS Access 2000 используется ODBC-драйвер и ODBC Link, при этом на компьютере требуется наличие Microsoft Jet Engine 4.0, входящий в состав MS Access 2000 и Microsoft Data Access Components (MDAC).

Использование BDE – не самый эффективный способ доступа к данным MS Access. Доступ к данным этой СУБД необходимо осуществлять с помощью ADO/OLE DB (либо с помощью объектной модели клиентской части этой СУБД).

· Доступ к данным FoxPro осуществим в первую очередь с помощью BDE-драйвера прямого доступа, возможен доступ через ODBC Link и соответствующий ODBC-драйвер. Доступ к данным Visual FoxPro осуществим только с помощью ODBC Link и соответствующего ODBC-драйвера.

· Microsoft SQL Server 4.х и 6.х доступны через BDE-драйвер прямого доступа, но он не всегда работает с Microsoft SQL Server 7.0 и MSDE, так как некоторые новые особенности Microsoft SQL Server 7.0, отсутствовавшие в прежних версиях этой СУБД, например типы данных, не поддерживаются BDE.

· Для Oracle, Sybase, IBM DB2, Informix, InterBase существуют BDE-драйверы прямого доступа (так называемые SQL Links). Помимо этого доступ к ним может быть осуществлен с помощью ODBC Link и ODBC-драйверов. Для этих СУБД обычно имеется по нескольку ODBC-драйверов разных производителей (иногда поддерживающих разную функциональность).

· В объектно-ориентированных СУБД Oracle на данный момент более предпочтительно применение BDE, а не других универсальных механизмов доступа к данным, так как объектные типы данных этой СУБД поддерживаются ее BDE-драйвером прямого доступа, но не поддерживаются имеющимися версиями OLE DB-провайдеров.

Подводя итоги можно сказать что, применение BDE нежелательно при создании приложений использующих средства разработки, не принадлежащие и не принадлежавшие Borland (за исключением случаев, когда необходима запись в файлы Paradox и dBase), для хранения данных используются Microsoft SQL Server 7.0 и Access 2000.

Далее в курсе лекций будут рассмотрены вопросы доступа к данным с использованием механизмов доступа BDE и ADO.

Вопросы для самоконтроля

1. Что такое механизм доступа к данным?

2. Какие основные механизмы доступа к данным поддерживаются в Delphi?

3. Что представляет собой доступ к данным с использованием ODBC?

4. Что представляет собой доступ к данным с использованием OLE DB и ADO?

5. Что представляет собой доступ к данным с использованием BDE?

6. К каким СУБД доступ с использованием BDE можно назвать оптимальным и почему?

7. В каких случаях использование механизма доступа BDE не оправдано?

8. Какие механизмы доступа рекомендуется использовать для СУБД MS Access2000, MS SQL Server 7.0?

<< | >>
Источник: РазработкА и эксплуатациЯ автоматизированных информационных систем. ЛЕКЦИИ.

Еще по теме Лекция 5.1. Механизмы доступа к данным в среде Delphi:

  1. 7. Отождествление человека по генетическим признакам
  2. 99. необходимость планирования МК, его механизм.
  3. Соціальні права адвоката
  4. Джерела інформації:
  5. Трудности образования множественного числа имен существительных
  6. 44. Правоприменение: понятие, признаки, основания.
  7. § 3. Принцип вины