Введение в базы данных
Другие механизмы доступа к данным
Внушительный список подобных продуктов (порядка пятидесяти, по большей части коммерческих) можно найти на сайте http://www.kylecordes.com. В основном это наборы VCL-компонентов для Delphi и C++Builder, иногда – наборы DLL, cодержащие функции доступа к данным, изредка – COM-серверы и элементы управления ActiveX.
Ниже мы рассмотрим наиболее известные из них.
![]() |
![]() |
Компоненты для доступа к ODBC-источникам
Так как ODBC является на данный момент наиболее часто используемым универсальным механизмом доступа к данным (ODBC-драйвер нынче можно найти практически к чему угодно, и нередко не один), хорошие перспективы применения подобных компонентов очевидны. Производительность приложений, использующих компоненты для доступа к ODBC-источникам, обычно выше производительности приложений, которые используют BDE и ODBC Link, за счет отказа от использования дополнительных библиотек BDE. По этой же причине упрощена поставка таких приложений, поскольку не требуется включать BDE в дистрибутив и обеспечивать его настройку на компьютере пользователя. Однако об установке ODBC, наличии соответствующего ODBC-драйвера и описании ODBC-источника данных тем не менее следует позаботиться.
ODBCExpress (Korbitec)
ODBCExpress представляет собой набор компонентов и классов для Delphi и C++Builder, применяемых для доступа к ODBC-источникам данных и инкапсулирующих вызовы ODBC API. Для работы приложений, использующих эти компоненты и классы, требуются библиотеки ODBC (доступные на Web-сервере Microsoft) и ODBC-драйвер для выбранной СУБД. Сами компоненты и классы ODBCExpress располагаются внутри исполняемого файла приложения.
ODBCExpress совместим со стандартными компонентами отображения данных и генераторами отчетов, наиболее часто применяемыми с этими средствами разработки, а также с наиболее популярными коммерческими компонентами отображения данных, такими как InfoPower (Woll2Woll Software) и Orpheus (TurboPower).
Эксперты, тестировавшие продукт, отмечают его отличную работу вместе с ODBC-драйверами для Microsoft SQL Server и Microsoft Access и неудовлетворительную работу с ODBC-драйверами для Sybase SQL Anywhere и IB Database.
ODBC98 (Kosta Corriveau)
ODBC98, как и ODBCExpress, представляет собой набор компонентов и классов для Delphi и C++Builder, обеспечивающих доступ к ODBC-источникам и использующих для этой цели ODBC API. Для применения этих библиотек также требуются библиотеки ODBC и ODBC-драйвер для выбранной СУБД. Сами компоненты и классы ODBC98 также располагаются внутри исполняемого файла приложения.
ODBC98 cовместим со стандартными компонентами отображения данных и генераторами отчетов, наиболее часто применяемыми с этими средствами разработки, а также с наиболее популярными коммерческими компонентами отображения данных, такими как InfoPower (Woll2Woll Software) и Orpheus (TurboPower).
Хотя ODBC98 — относительно новый продукт, он успел получить неплохие отзывы экспертов, особенно в отношении высококачественной технической поддержки. Достоинством продукта можно считать и наличие регулярных публикаций результатов его тестирования совместно с вновь выходящими ODBC-драйверами, что избавляет потребителей от многочисленных утомительных «экспериментов».
![]() |
![]() |
Компоненты прямого доступа к Oracle
Несмотря на неплохую поддержку Oracle в BDE, компоненты прямого доступа к Oracle имеют хорошие перспективы применения, так как не требуют приобретения дорогих Enterprise-версий Delphi или C++Builder и предоставляют дополнительную функциональность, специфичную для данной СУБД.
Производительность приложений, использующих компоненты прямого доступа к Oracle (как и к любым другим серверным СУБД), обычно выше, чем приложений, использующих BDE, за счет отказа от использования дополнительных библиотек BDE. Поставка приложений, использующих такие компоненты, не представляет трудностей – в состав дистрибутива приложений не нужно включать ни BDE, ни ODBC. Однако клиентская часть Oracle на компьютере пользователя, безусловно, должна присутствовать – эти компоненты используют функции или объекты из ее библиотек.
Oracle Data Access Components (CoRe Lab Software Development)
Oracle Data Access Components (ODAC) представляет собой набор невизуальных компонентов для Delphi и C++ Builder, позволяющих осуществить доступ к Oracle без использования универсальных механизмов доступа к данным. Для доступа к объектам Oracle ODAC использует непосредственно API клиентской части Oracle — Oracle Call Interface (OCI). Отказ от применения универсальных механизмов доступа к данным позволяет повысить производительность приложений и использовать при создании приложений Delphi Professional или C++Builder Professional, более дешевые по сравнению с Enterprise-версиями, обычно применяемыми для этой цели.
ODAC может быть использован совместно со стандартными компонентами отображения данных, QuickReport, ReportBuilder Pro, а также с наиболее популярными коммерческими компонентами отображения данных, такими как InfoPower (Woll2Woll Software) и Orpheus (TurboPower).
Компоненты ODAC могут быть использованы с Oracle 7.3, Oracle 8, Oracle 8i, включая Personal Oracle и Personal Oracle Lite.
Direct Oracle Access (Allround Automations)
http://www.allroundautomations.nl
Direct Oracle Access представляет собой еще один набор компонентов, использующий клиентский API для доступа к данным Oracle. Эти компоненты не требуют применения каких-либо универсальных механизмов доступа к данным, тем самым повышая производительность создаваемых приложений, а также позволяют применять Professional-версии средств разработки Borland для создания приложений, использующих Oracle. Кроме того, Direct Oracle Access позволяет выполнять блоки PL/SQL и использовать объектные расширения Oracle 8.
Direct Oracle Access может быть использован совместно со стандартными компонентами отображения данных, генераторами отчетов типа QuickReport, ReportBuilder Pro, а также с наиболее популярными коммерческими компонентами отображения данных, такими как InfoPower (Woll2Woll Software) и Orpheus (TurboPower).
Данный набор компонентов совместим со всеми версиями клиентов Oracle и со всеми версиями Oracle – от Personal Oracle Lite до Oracle 8i.
![]() |
![]() |
Компоненты прямого доступа к IB Database
Компоненты прямого доступа к IB Database (как и аналогичные компоненты для Oracle) имеют неплохие перспективы применения, так как не требуют приобретения Enterprise-версий Delphi или C++Builder, предоставляя дополнительную функциональность, специфичную для IB Database. Один из таких наборов уже входит в комплект поставки Enterprise-версий Delphi 5 и С++Builder 5, но при наличии Professional-версий этих продуктов (или более ранних их версий) стоит обратить внимание на продукты сторонних фирм, реализующие аналогичную функциональность.
Производительность приложений, использующих компоненты прямого доступа к IB Database, обычно выше производительности приложений, которые используют BDE. При поставке таких приложений следует позаботиться о наличии на компьютере пользователя клиентской части IB Database — эти компоненты используют клиентский API, содержащийся в ее библиотеке.
InterBase Objects (Jason Wharton)
IB Objects представляет собой набор из более чем 40 компонентов прямого доступа к IB Database для Delphi (начиная с версии 2.0) и С++Builder (начиная с версии 3.0), использующих клиентский API этой СУБД. Этот набор совместим со стандартными компонентами отображения данных и генераторами отчетов, наиболее часто применяемыми с этими средствами разработки, а также с наиболее популярными коммерческими компонентами отображения данных, такими как InfoPower (Woll2Woll Software) и Orpheus (TurboPower), однако содержит и собственные визуальные компоненты, в том числе реализующие поиск данных в таблицах и результатах запросовов. IB Objects позволяет использовать специфические особенности IB Database, в частности связанные с обработкой транзакций в этой СУБД.
Помимо этого в комплект поставки IB Objects входит сервер приложений, позволяющий создавать Web-приложения с применением этих компонентов, а также средство просмотра SQL-запросов, генерируемых приложением.
FreeIBComponents (Gregory Deatz)
http://www.interbase.com/downloads/summaries/47.html
FreeIBComponents — набор VCL-компонентов прямого доступа к IB Database 4.2 и 5 для Delphi (начиная с Delphi 3). Помимо собственно компонентов доступа к данным, содержит Pascal-версию заголовочного файла API клиентской части IB Database.
Эксперты отмечают быстрое исправление ошибок и недостатков, несмотря на то что данный продукт распространяется бесплатно.
![]() |
![]() |
Компоненты Titan для доступа к различным СУБД
Компоненты Titan фирмы Reggatta Systems для доступа к Btrieve, Microsoft Access, Sybase SQL Anywhere используют клиентский API этих СУБД, что исключает необходимость использования других библиотек доступа к данным (BDE, ODBC и др.) и позволяет достичь приемлемой производительности.
Titan Btrieve (Reggatta Systems)
Titan Btrieve представляет собой набор компонентов прямого доступа к данным Btrieve 6.x и выше, а также Pervasive.SQL. Эти компоненты используют непосредственно Btrieve API и требуют наличия соответствующих библиотек на клиентском компьютере, где используется такое приложение.
Компоненты Titan Btrieve совместимы со всеми компонентами отображения данных Delphi и C++Builder.
Среди особенностей Titan Btireve следует отметить возможность добавлять в исполняемый файл сведения о метаданных используемой этим приложением базы данных (имена таблиц, наименования и типы полей и др.). Это позволяет снизить число обращений к базе данных и тем самым уменьшить сетевой трафик. Помимо этого при использовании Titan Btireve можно вызывать процедуры сжатия базы данных и восстановления ее после сбоев.
Titan Access (Reggatta Systems)
Titan Access представляет собой набор компонентов прямого доступа к данным Access. Эти компоненты используют библиотеки Microsoft Jet, которые должны быть установлены на компьютере пользователя.
Компоненты Titan Access совместимы со всеми компонентами отображения данных Delphi и C++Builder.
Titan SQL Anywhere (Reggatta Systems)
Titan SQL Anywhere представляет собой набор компонентов прямого доступа к данным Sybase SQL Anywhere. Эти компоненты используют API клиентской части SQL Anywhere, в том числе недокументированные функции.
Компоненты Titan SQL Anywhere совместимы со всеми компонентами отображения данных Delphi и C++Builder.
Эксперты, тестировавшие данный продукт, отмечают его высокую производительность.
![]() |
![]() |
Компоненты управления данными dBase и dBase-подобных СУБД
Компоненты доступа к dBase имеют неплохие перспективы применения по очень простой причине – dBase и его «клоны» были на протяжении многих лет самыми популярными в мире форматами данных (об этом мы уже писали во второй статье данного цикла, опубликованной в апрельском номере журнала). Количество данных, хранящихся в этом формате, а также информационных систем, до сих пор базирующихся на применении формата данных dBase, по-прежнему очень велико, особенно в нашей стране. На российских предприятиях, особенно на периферии, можно обнаружить немало продуктов, написанных на FoxBase и Clipper, которые продаются и покупаются, эксплуатируются на любых компьютерах, в том числе на безнадежно устаревших, при этом вполне удовлетворяя пользователей, и которые по этим причинам никто в ближайшее время не планирует заменять на что-то другое. Но создавать новые приложения, использующие накопленные таким образом данные, все же иногда приходится...
TOPAZ (Software Science, Inc.)
TOPAZ представляет собой набор компонентов, классов и функций для Delphi и C++Builder, позволяющих осуществить прямой доступ к данным ранних версий формата dBase, а также применять в приложениях, созданных с помощью Delphi, функции, характерные для xBase-языков (они реализованы в библиотеках TOPAZ).
TOPAZ совместим со стандартными компонентами отображения данных, QuickReport, а также с наиболее популярными коммерческими компонентами отображения данных, такими как InfoPower (Woll2Woll Software) и Orpheus (TurboPower), однако содержит и собственные визуальные компоненты, предназначенные для печати некоторых специализированных отчетов (типа почтовых и других этикеток) и редактирования данных в стиле «старых» dBase-приложений.
Поставка приложений, использующих TOPAZ, не представляет трудностей – в состав дистрибутива приложений не нужно включать ни BDE, ни ODBC. Сами же компоненты находятся внутри исполняемого файла, использующего их приложения, и не требуют никаких дополнительных библиотек.
Помимо библиотек компонентов и функций для манипуляции данными, в комплект поставки TOPAZ входит ряд полезных утилит, например для редактирования dBase-таблиц и их структуры и др.
Apollo (Vista Software)
Apollo представляет собой набор VCL-компонентов для Delphi и C++Builder, позволяющих осуществлять прямой доступ к таблицам и индексам FoxPro и Clipper (файлы с расширениями .DBF, .DBT, .NTX, .FPT, .IDX, .CDX), а также к собственному формату данных Vista Software (файл с расширением .NSX). При поставке приложений, кроме исполняемого файла, требуются две динамически загружаемые библиотеки размером 350 Kбайт.
Особенностью Apollo является поддержка режима блокировок, характерного для DOS-приложений, созданных с помощью FoxPro и Clipper. Это позволяет совместно использовать одну и ту же базу данных приложениями, созданными с помощью Apollo, и приложениями, созданными с помощью FoxPro и Clipper. Помимо этого Apollo поддерживает оптимизацию запросов наподобие применяемой в FoxPro, шифрование данных, использование функций, определяемых пользователем, в запросах и индексах (что широко применялось в dBase, Clipper, FoxPro, но сейчас практически не используется в универсальных механизмах доступа к данным; с этой точки зрения Apollo – практически единственный инструмент, позволяющий манипулировать dBase-таблицами с индексами, основанными на выражениях).
Apollo cовместим со стандартными компонентами отображения данных, наиболее популярными генераторами отчетов, используемыми с этими средствами разработки, а также с наиболее популярными коммерческими компонентами отображения данных, такими как InfoPower (Woll2Woll Software) и Orpheus (TurboPower).
Advantage Database Server (Extended Systems, Inc.)
http://www.advantagedatabase.com/
Advantage Database Server является одним из некогда «модных» решений – надстройкой над dBase-данными, представляющей собой отдельный процесс, функционирующий наподобие сервера баз данных и управляющий dBase-таблицами (мы упоминали о таких решениях в предыдущей статье данного цикла, опубликованной в майском номере журнала). Клиентские приложения обращаются к этому серверу, а не непосредственно к таблицам. Иными словами, применяя этот продукт, мы можем получить некоторые преимущества архитектуры «клиент-сервер» (например, обработку запросов на сервере, увеличение объема хранимых данных) при сохранении устаревшего формата данных; надо отметить, что это решение пока еще довольно популярно, по крайней мере в США.
Advantage Database Server содержит компоненты и классы для Delphi и C++Builder, позволяющие использовать стандартные компоненты отображения данных, наиболее популярные генераторы отчетов, используемые с этими средствами разработки, а также наиболее популярные коммерческие компоненты отображения данных, такие как InfoPower (Woll2Woll Software) и Orpheus (TurboPower).
Для использования Advantage Database Server с другими средствами разработки в комплект поставки продукта входит ODBC-драйвер.
Серверная часть Advantage Database Server (без клиентских утилит) входит в комплект поставки Visual dBase начиная с версии 7.5.
На компьютере, где эксплуатируются приложения, использующие Advantage Database Server, требуется наличие его клиентской части.
![]() |
![]() |
Заключение
В настоящей статье мы рассмотрели некоторые механизмы доступа к данным. Мы узнали, что существует несколько способов доступа к данным из средств разработки и клиентских приложений, которые условно можно разделить на две категории:
- использование клиентского API (или клиентских COM-объектов);
- применение универсальных механизмов доступа к данным.
Мы также узнали, что:
- универсальные механизмы доступа к данным обычно реализованы в виде библиотек и модулей, называемых драйверами или провайдерами, содержащих стандартный набор функций или классов, реализованных на основе функций клиентского API конкретных СУБД;
- Наиболее общеупотребительными среди универсальных механизмов являются ODBC, OLE DB и ADO, а также, в определенной степени, BDE.
Далее мы рассмотрели BDE и возможности, предоставляемые этим механизмом доступа к данным. Мы выяснили следующее:
- физически BDE представляет собой библиотеки доступа к данным, реализующие функции BDE API для манипуляции данными;
- функции BDE API, в свою очередь, могут обращаться к функциям клиентского API или ODBC API;
- BDE-драйверы прямого доступа сегодня имеются для всех версий dBase, Paradox, IB Database, Microsoft Access 95 и Access 97, Microsoft FoxPro, Microsoft SQL Server 4.x и 6.x., Oracle 7, Oracle 8 (начиная с Oracle 8.0.4), Sybase, IBM DB2, Informix;
- для доступа с помощью BDE к источникам данных, отличным от перечисленных выше, следует использовать ODBC-драйвер и ODBC Link;
- для доступа к данным Paradox и поздних версий dBase требуется наличие BDE даже в случае применения других универсальных механизмов доступа к данным (ODBC, OLE DB, ADO);
- для доступа к данным Access 2000, Microsoft SQL Server и MSDE использовать BDE не рекомендуется.
Мы также узнали, что применение BDE в ряде случаев связано с определенными ограничениями, причиной которых нередко является отсутствие необходимых BDE-драйверов. Однако существует возможность выбора продуктов третьих фирм, способных заменить BDE в приложениях, созданных с помощью средств разработки Borland. В данном обзоре мы рассмотрели в качестве таких продуктов:
- компоненты для доступа к ODBC-источникам данных;
- компоненты прямого доступа к Oracle и IB Database;
- компоненты Titan для прямого доступа к Btrieve, Access, SQL Anywhere;
- компоненты управления данными dBase и dBase-подобных СУБД.
Следующая статья нашего цикла будет посвящена OLE DB и ADO – универсальным механизмам доступа к данным, доступным практически во всех популярных средствах разработки и являющимся составной частью операционных систем семейства Windows 2000.

КомпьютерПресс 6'2000