(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

BORLAND DELPHI: Базы данных "на DELPHI" - BDE

Источник: PC World
Чужа Виталий

Omnia mea mecum porto
Bias

Всё своё ношу с собой
Биант

Однако существует целый ряд доводов, против использования BDE:

  • цена: клиент-серверная версия Borland Delphi, включающая SQL Links, стоит более 2000 долл. США, в то время как для любого из серверов баз данных можно найти решение, которое будет более быстрым, простым и дешевым;
  • размеры дистрибутива: используя BDE при разработке вы, фактически, добавляете 2 дискеты к своему дистрибутиву;
  • конфликты: возможен конфликт устанавливаемого приложения с программами, уже установленными на данном компьютере и использующими более старую или новую версию BDE;
  • производительность: по сути дела, BDE -- промежуточное программное обеспечение, что, естественно, отрицательно влияет на производительность приложения в целом. Особенно неудобно, когда BDE используется для доступа к источникам данных через другое промежуточное ПО (например, ODBC);
  • целесообразность: зачастую объем данных, которые необходимо хранить, невелик и формат их не имеет значения. В таком случае вполне достаточно хранить эти данные в некоей СУБД, обладающей минимальной функциональностью. К тому же желательно, чтобы эта функциональность была реализована в виде "родного" Delphi-компонента, избавляющего программиста от установки на машине конечного пользователя какого бы то ни было дополнительного "двигателя" баз данных.

Эта задача была настолько очевидной, востребованной и привлекательной, что с выходом первых версий Borland Delphi появились и наборы компонент, открывающие доступ к источникам данных и работающие без участия BDE. Только широко известных наборов компонент такого рода на сегодняшний день насчитывается более 30 (табл. 1). Условно их можно разбить на группы по признаку предоставления доступа к тем или иным источникам данных. Вот некоторые из них.

Компоненты доступа к серверам баз данных

Среди наборов компонент, предоставляющих доступ к серверам баз данных, таких как Informix, MS SQL Server, DB2, InterBase, MySQL, Oracle и Sybase, ваше внимание может привлечь компоненты ZeosDBO. Прежде всего это связано с тем, что он распространяется бесплатно. Но это не единственное его достоинство. В состав ZeosDBO входит несколько библиотек.

Библиотека ZEOS Library включает в себя целый спектр компонентов: прежде всего для быстрого доступа к SQL серверам MySql, PostgreSql, MicrosoftSQL, Oracle и Interbase, минуя посредничество BDE/ADO/ODBC. Библиотека включает:

  • низкоуровневое API для доступа к клиентским частям MySql, PostgreSql и Interbase;
  • низкоуровневое объектно-ориентированное API для доступа к MySql, PostgreSql и Interbase;
  • TZXXSqlDatabase компоненты для предоставления соединения с базой данных;
  • TZXXSqlTransact компоненты для управления транзакциями;
  • TZXXSqlQuery компоненты для выполнения SQL-запросов, просмотра и редактирования содержимого простых и сложных запросов SELECT;
  • TZXXSqlTable компоненты для просмотра и редактирования БД таблиц;
  • TZXXSqlMonitor компоненты для просмотра исходящих запросов на SQL-сервер;
  • TZUpdateSql компоненты для работы с запросами;
  • TZBatchSql для исполнения Sql-скриптов.

Библиотека Zeos Controls - управляющие элементы Zeos - включает следующие элементы:

  • TZParser компонент для анализа формул;
  • TZFindDialog и TZFilterDialog диалоги для поиска и фильтрации;
  • TZDBGrid, улучшенная версия стандартного компонента с поиском и фильтром;
  • TZDbHexEdit компонент для редактирования двоичных данных;
  • TZDbImage компонент для отображения изображений в формате bmp, jpeg и gif.

В данную библиотеку входят и утилиты для работы с сервером MySQL - Interactive MySQL и PostgreSQL сервером - Interactive PostgreSQL. Эти программные продукты позволяют создавать и отлаживать SQL-запросы, просматривать и редактировать полученные таблицы, а также blob-поля.

Zeos Database Explorer - инструмент, обладающий всеми преимуществами Interactive MySQL и Interactive PostgreSQL и поддерживающий Interbase SQL и Microsoft SQL. Позволяет администрировать все доступные базы данных с помощью удобного интерфейса. Одно из дополнительных преимуществ - наличие средств резервного архивирования и восстановления базы данных.

Библиотека классов для программирования на C++ для Linux, продолжающая традиции библиотек классов Delphi VCL и Java, содержит абстрактные классы, классы для работы со всевозможными списками, классы для работы с базами данных, потоками, строками, сетевыми протоколами TCP/IP и т.д.

Компоненты доступа к стандартным источникам данных

Среди наборов компонент, предоставляющие доступ к стандартным источникам данных (xBase, Paradox, Access) можно выделить GM Components. На данный момент на сайте фирмы-разработчика этого набора для ознакомления доступны инсталляции для версий Borland Delphi 3,4,5. Все они являются полнофункциональными, однако время работы приложения, использующего эти компоненты, ограничено 15 минутами. Процесс инсталляции автоматизирован и достаточно прост, после запуска интегрированной среды разработчика Borland Delphi 5 появляются 3 новых закладки - GM, GM DB и GM DAO, компоненты GM ADO добавляются на существующую закладку ADO.

На закладке GM размещаются компоненты, относящиеся, по большей части, к разработке интерфейса приложения: индикатор процесса, кнопка, селектор цвета, селектор стиля кисти, меню и т.д. Многие из них являются усовершенствованными потомками стандартных компонент Delphi и, по-моему, особой ценности для разработчика не представляют, поскольку существует масса бесплатных компонент со схожей функциональностью.

Более интересной выглядит закладка GMDB, на которой размещены такие компоненты доступа к данным как:

  • DB Mediaplayer, имеющий стандартный вид Windows Mediaplayer;
  • DB Datagrid с индикацией проиндексированных и ключевых полей;
  • компоненты GMDBEdit, GMDBImage, GMDBMemo, GMDBRichEdit, являющиеся наследниками компонент Delphi с расширенной функциональностью.

На закладке ADO размещаются компоненты, открывающие доступ к данным OLE-DB провайдеров, осуществляющийся без использования BDE.

И, наконец, на закладке DAO размещаются четыре компоненты, обеспечивающие доступ к файлам баз данных, хранимых в формате MS Access, а также к данным посредством ODBC.

Для построения несложного приложения Borland Delphi, использующего для хранения данных базу в формате MS Access, достаточно выполнить несколько простых шагов.

Создать файл базы данных с использованием, например MS Access 2000, в котором построить таблицу, указать ключевые поля и создать индексы.

Создать новый проект в интегрированной среде разработчика Borland Delphi и разместить на нем:

  • компонент DAODataBase1, установив свойство DaoLibrary равным dlDAO36 в случае использования файла базы данных MS Access 2000, в свойстве DatabaseFile указать имя файла базы данных, свойство Active установить равным True;
  • компонент DAORecordset1, установив свойство DAODatabase равным DAODataBase1, свойство TableName (имя таблицы) равным main, свойство Index равным FIO, свойство Active установить равным True, а также в редакторе полей которого (открыть его можно, щёлкнув правой кнопкой мыши на компоненте и выбрав Fields Editor) можно добавить поля таблицы и установить им свойство Title (заголовок);
  • компонент DataSource1, установив свойство Dataset равным DAORecordset1;
  • компонент DBNavigator1, установив его свойство DataSource равным DataSource1;
  • компонент GMDBDataGrid1, установив его свойство DataSource равным DataSource1;

Единственным, но существенным недостатком shareware-версии данной библиотеки компонентов, является ограничение работы приложения пятнадцатью минутами, по истечении которых оно закрывается без сохранения не записанных данных, о чем, впрочем, пользователя честно предупреждают перед каждым запуском программы.

DBISAM: давайте познакомимся…

К наборам компонент, предоставляющих доступ к данным, хранящимся только в собственном формате, относится DBISAM.

На сегодняшний день последняя выпущенная версия Elevate Software DBISAM предназначена для использования как с Borland Delphi 5, так и для Borland C++ Builder 5. В состав этого пакета входит три утилиты - DBISAM Database System Utility, DBISAM BDE Database Transfer Utility, а также Customer Support Transfer Utility. Кроме того, после инсталляции этого продукта, на палитре компонентов Borland Delphi появятся две новые закладки - DBISAM и DBISAM Utilities - всего с девятью компонентами, которых вполне достаточно для построения приложения, взаимодействующего с базой данных. Кстати, процесс инсталляции полностью автоматизирован и не вызовет никаких трудностей, если вы обладаете хотя бы минимальными знаниями английского языка и опытом работы с Windows.

… и поработаем вместе: DBISAM Database System Utility

Идеология создания файла базы данных с помощью пакета DBISAM покажется вам очень знакомой. Только вместо использования Borland Database Desktop нам предлагается воспользоваться DBISAM Database System Utility -- утилитой для создания файлов баз данных DBISAM. Если вы хорошо знакомы с Borland Database Desktop, то особых сложностей с использованием его альтернативы у вас возникнуть не должно.

С помощью меню "File-New Table" (альтернатива - первая кнопка на панели инструментов) откроем окно "New Table", вид которого представлен на рис. 9 (перевод добавлен автором статьи), и создадим простейшую базу данных, содержащую три поля: поле NPP для автоматической нумерации записей, поле FIO для записи фамилии, имени и отчества, а также поле ADDRESS - для записи адреса.

Обратите внимание на следующие особенности, поддерживаемые на этапе создания БД:

  • поддержка номера версии и описания для файла БД;
  • шифрование и установка пароля;
  • возможность использования русского, украинского и белорусского языков для заполнения БД (наряду с традиционными английским, немецким и т.д.);
  • установка параметров главного (первичного) индекса: установка порядка сортировки, чувствительности к регистру, сжатия;
  • поддержка целого спектра типов данных: string, blob, memo, fmtmemo, typedbinary, date, time, timestamp, boolean, smallint, word, integer, autoinc, float, currency, bcd, bytes;
  • поддержка вторичных индексов;
  • импортирование структуры другой БД (кнопка "Borrow Structure…").

Создадим для нашей БД два вторичных индекса для полей FIO и ADDRESS.

Для вторичных индексов также можно задать ряд параметров:

  • обратный порядок сортировки ("Desc");
  • нечувствительность к регистру ("Case-Ins");
  • поддержка уникальности записи ("Unique");
  • компрессию (сжатие) индекса ("Compression").

После нажатия на кнопку "Save" БД сохраняется на диске - процесс создания завершен. Необходимо отметить тот факт, что файл БД (в данном случае test.dat) имеет расширение .dat, а индексы, blob-поля и т.д., хранятся в одноименных файлах, но с другими расширениями (здесь - test.idx). Об этом необходимо помнить при переносе приложения на другой ПК.

Кроме создания собственно БД, DBISAM Database System Utility предоставляет целый ряд дополнительных функций и утилит, которые при работе с БД обеспечивают:

  • создание и использование SQL-запросов (меню "File-New SQL Query");
  • полноценную работу с БД как в эксклюзивном режиме, так и при работе в сети (меню "File-Open Table Exclusive" и "File-Open Table Shared");
  • реструктуризацию (меню "Utilities-Restructure"), оптимизацию (меню "Utilities-Optimize") и восстановление файла БД (меню "Utilities => Repair");
  • очистку (меню "Utilities => Empty"), копирование щ(меню "Utilities => Copy"), переименование (меню "Utilities => Rename") и удаление БД (меню "Utilities => Delete");
  • получение информации о версии файла БД и возможность обновления до текущей версии.

Немного о реверс-инженерии

Есть еще один очень интересный инструмент, скрывающийся в меню "Utilities" под скромным названием "Reverse Engineer". Этот инструмент генерирует код на SQL-92, Object Pascal для Delphi или C++ для Borland C++ Builder (по выбору), создающий структуру выбранной базы данных DBISAM.

Кроме выбора языка, на котором будет генерироваться код, предоставляется возможность включения в него дополнительного кода, добавляющего существующие данные во вновь создаваемую таблицу БД (пункт "Include Code to Add Existing Data").

DBISAM BDE Database Transfer Utility

С помощью этого приложения можно осуществить перенос БД, разработанной для использования через BDE, в систему DBISAM. Источник данных можно выбирать как с помощью существующего псевдонима BDE ("Select Source Alias"), так и с помощью дерева каталогов ("Select Source Directory"). В окне выбора таблиц для переноса ("Select Tables To Transfer") можно выбрать как один, так и несколько файлов баз данных для переноса. После выбора каталога назначения ("Select Destination Directory"), остаётся нажать кнопку "Начать перенос" ("Begin Transfer…"), и приложение осуществит перенос. Очень похоже на несколько видоизмененный Data Pump, не правда ли?

Пример программного интерфейса

Для того чтобы начать работу с уже существующей БД (в нашем случае test.dat), достаточно создать несложный интерфейс с помощью Borland Delphi.

В простейшем случае для этого необходимо выполнить ряд стандартных операций.

  1. Запустим интегрированную среду разработчика Borland Delphi 5 и создадим новое приложение ("File-New Application").
  2. Поместим на форму компонент DBISAMDatabase1, установим его свойство Directory равным каталогу, в котором находится файл базы данных test.dat. Затем разместим на форме компонент DBISAMTable1 и присвоим его свойству DatabaseName значение "TEST", свойству TableName присвоим значение "test.dat", свойству Active - True. Затем нажмём на компоненте правой кнопкой мыши и выберем "Редактор Полей" ("Fields Editor"), в котором опять нажмём правую кнопку мыши и выберем "Добавить все поля" ("Add all fields"). После чего каждому из трех полей, появившихся в редакторе, установим соответственное значение свойства DisplayLabel (например, "№ п/п", "Ф.И.О.", "Адрес"). И, наконец, перейдем на закладку Data Access и разместим на главной форме приложения компонент DataSource1, установив его свойство DataSet равным DBISAMTable1.
  3. Дело осталось за двумя визуальными компонентами - навигатором БД и сеткой БД. Перейдем на закладку Data Controls и разместим на форме компонент DBNavigator1, установим его свойство DataSource равным DataSource1, свойство Align равным alTop. С закладки DBISAM Utilities возьмем компонент DBISAMDBGrid1, установим его свойство DataSource равным DataSource1, свойство Align равным alClient.

Всё, что осталось сделать, - откомпилировать проект. После компиляции не трудно заметить, что размер EXE-файла проекта занимает около 1 МБ, что примерно на 400 КБ больше, чем обычно в подобном случае с BDE. Вполне умеренная плата за такую функциональность, не так ли?

Подведем итоги

На сегодняшний день рынок альтернатив Borland Database Engine богат и разнообразен, и при необходимости можно достаточно легко найти библиотеку компонент, обладающую необходимой именно вам функциональностью, с невысокой ценой или даже freeware. Однако, особенно в случае использования таких библиотек в крупных проектах, необходимо обратить внимание не только на цену и заявленную функциональность. Наличие серьезной документации к такого рода программному обеспечению, возможность получить исходные коды, оперативная техническая поддержка, длительность существования фирмы-разработчика на этом рынке, ее планы на будущее - все это также серьезные, а может быть и решающие, факторы для принятия окончательного решения. Главное -- чтобы в результате ваши ожидания относительно выбранного программного продукта оправдались. А решение в любом случае остается за вами.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 02.06.2007 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Raize Components 6
Microsoft 365 Apps for business (corporate)
JIRA Software Commercial (Cloud) Standard 10 Users
Delphi Professional Named User
Quest Software. Toad for DBA Suite for Oracle
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
Программирование в AutoCAD
СУБД Oracle "с нуля"
Corel DRAW - от идеи до реализации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100