Блог Александра Божко
Архивы
Рубрики
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

В контексте своих предыдущих постов я неоднократно упоминал те или иные компоненты доступа к данным. В данном обзоре я хочу рассказать о продуктах компании DevArt. В мире Delphi эта компания хорошо известна именно благодаря компонентам доступа к данным. Если вы искали с помощью чего подключиться, например, к Oracle или Postgre SQL, то наверняка обращали внимание на ODAC или PgDAC, соответственно.

В настоящий момент компания предлагает несколько специализированых библиотек для подключения к различным СУБД (Interbase/FireBird, Oracle, Postgre SQL, MySQL, SQLite, MS SQL). Кроме этого, существует универсальное решение – UniDAC. Эта библиотека поддерживает различные СУБД, подключаясь к ним различным способом (см. схему). “Самые быстрые и надежные решения для работы с любыми базами данных” – гласит слоган на русскоязычной странице библиотеки.

Совершенно недавно я получил возможность на практике познакомиться с возможностями  UniDAC, использовав данный набор в проекте DB Meta Studio. Сама функциональность данного приложения предполагает универсальность и возможность работать с разными СУБД. Здесь я попытаюсь дать общее представление о UniDAC и поделиться своими субъективными впечатлениями.

Как правило, наборы для доступа к данным содержат некий «обязательный» список компонентов. Не является исключением и UniDAC. Однако в данном случае этот список сильно расширен интересными с функциональной точки зрения компонентами, о которых я вкратце расскажу ниже. А пока несколько слов о ключевых компонентах для работы с данными. В рамках данного обзора я ограничусь лишь кратким их описанием.

Итак, в состав UniDAC входят следующие компоненты:

  • TUniConnection – компонент, используемый для подключения к БД;
  • TUniTransaction – компонент, предназначенный для управления транзакциями;
  • Наборы данных TUniTable и TUniQuery;
  • Компоненты TUniSQL, TUniScript и TUniStoredProc предназначенные для выполнения SQL операторов, скриптов и хранимый процедур;
  • TUniDump  – компонент, предназначенный для создания и восстановления резервных копий БД;
  • TUniUpdateSQL – компонент, дающий возможность выполнять DML выражения для read-only наборов данных.

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

Как это работает?

Для того, что бы настроить соединение, например, с MS Access, следует поместить на форме компонент TUniConnection, двойным нажатием активировать диалог подключения и настроить соединение с базой. В режиме проектирования вы сможете установить свойство Connection в значение True. Но для того, что бы установить соединение в режиме выполнения, на ту же форму нужно поместить компонент TAccessUniProvider.

В DB Meta Studio я использую один и тот же компонент TUniConnection для подключения к разным базам. В DataModule я просто поместил несколько провайдеров. Изменять параметры соединения вполне можно в RunTime, для этого я использую компонент TUniConnectionDialog.  В большинстве случаев, для подключения достаточно задать основные параметры соединения (провайдер, сервер, порт, имя пользователя, пароль, путь к БД или ее название). Однако в отдельных случаях для обеспечения соединения с БД приходится настраивать свойство SpecificOptions, которое позволяет задавать параметры подключения, специфичные для каждой из СУБД. Так для подключения к FireBird 2,5 потребовалось указать ClientLibrary.

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

  • TUniMetaData – компонент, предназначенный для извлечения мета-информации (имена полей типы и размерность полей, информация об индексах и т.д.) из базы данных.  Именно этот компонент я использовал в DB Meta Studio;
  • TUniEncryptor – компонент, предназначенный для шифрования данных в клиентских приложениях;
  • TUniAlerter – компонент, предназначенный для работы с событиями БД. События поддерживаются такими СУБД как Oracle, PostgreSQL и InterBase(Firebird);
  • TUniLoader – компонент, предназначенный для быстрой загрузки внешних данных в таблицу. Для каждой СУБД TUniLoader предоставляет собственный интерфейс, обеспечивающий максимальную скорость загрузки данных.
  • TUniConnectDialog – с помощью данного компонента вызывается стандартный (или переопределенный пользователем) диалог настройки соединения;
  • TUniSQLMonitor – служит для получения отладочной информации о вызывающихся  SQL запросах в UniDAC приложениях;

Примечателен тот факт, что в UniDAC приложениях  можно использовать собственный аналог TDataSource – TUniDataSource. Этот компонент непосредственно наследуется от TDataSource, но имеет одно интересное усовершенствование. Если поместить его на какой-либо DataSet в режиме проектирования (Design Time), то он автоматически «привяжется» к этому DataSet’у (установит соответствующее значение свойства DataSet). При разработке приложений с большим количеством наборов данных это очень удобно.

TCRBatchMove – компонент, который используется для переноса записей из одного набора данных в другой, или для удаления записей, которые входят в другой DataSet. Компонент размещается на странице Data Access палитры инструментов.

Кроме перечисленных выше компонентов в поставку UniDAC входят несколько дополнительных продуктов.

VirtualTable – набор данных, не привязанный непосредственно к источнику данных. Собственно, подобный компонент не уникален, и существует множество его аналогов в других библиотеках компонентов. Но следует отметить, что подавляющее большинство реализаций т.н. виртуальных таблиц платные, а поскольку в ряде случаев использовать их очень удобно, VirtualTable можно расценивать как приятный бонус. Этот компонент также размещается на странице Data Access палитры инструментов.

TCRGrid – грид с расширенной функциональностью. Позволяет производить фильтрацию и сортировку данных, имеет расширенные возможности отображения данных, позволяет вычислять суммы столбцов и т.д. Я бы сравнил этот грид по функциональности с GridEh ранних версий. Компонент размещается на странице Data Controls палитры инструментов.

Даже столь краткое описание функционала входящих в состав UniDAC компонентов дает определенное представление о широком спектре возможностей рассматриваемой библиотеки. Вместе с тем, совершенно очевидно, что за любую универсальность нужно платить. Действительно, некоторые сугубо специфические для каждой из конкретных СУБД функции в UniDAC остались за бортом. И если вы работаете с одной определенной СУБД и вам нужна расширенная поддержка возможностей именно этой СУБД, то возможно, вам следует использовать одну из узкоспециализированных библиотек компонентов доступа к БД от DevArt. Например,  то, как выглядит набор для работы с SQLite (LiteDAC) вы можете прочесть в обзоре Владислава Баженова.

В апреле 2013-го года вышла очередная пятая версия UniDAC. Что же нового появилось в ней?

Прежде всего, это поддержка RAD Studio XE4 и компилятора NEXTGEN. Таким образом, пользователи UniDAC имеют возможность устанавливать соединение из-под iOS с различными поддерживаемыми СУБД.

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

Если говорить о конкурентных преимуществах UniDAC, то я бы прежде всего выделил  простоту (имея навыки работы с BDE или dbGo никаких видимых проблем в использовании UniDAC возникнуть не должно) и надежность библиотеки. Еще одно достоинство – хорошая документация и информативные примеры. Обращает на себя внимание добротный дизайн встроенных диалогов и хорошая их локализация. Так TUniConnectionDialog  поддерживает восемь языков, включая русский и английский. Возможна также пользовательская локализация. Кстати, если вы обратитесь в поддержку на русском, вам, вероятнее всего, ответят по-русски. :)

Разумная цена, на мой взгляд, также является не маловажным достоинством продукта. Ниже я привожу цену и ссылку на продукт в магазине программного обеспечения AllSoft. В магазине действует накопительная скидка, приобретая софт в AllSoft вы можете существенно сэкономить  на следующей покупке.

Цена: от 3824.12 руб.

В настоящий момент компания запустила программу High Five, суть которой  заключается в том, что пользователи получают скидку за распространение информации о продуктах DevArt.


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

2 комментария: Знакомьтесь, UniDAC!

  • Вы можете продолжить знакомство дальше показав примеры работы с этими компонентом? Интересует работа с MS SQL. От простых запросов до хранимок и работой с самим SQL сервером.

  • А что там не понятно??? Подключаешь и пользуешься

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика