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

UniDAC

Некоторое время назад я уже писал о DataSnap и своих экспериментах связанных с этой технологией. Интересно, что тогда я немного затронул набор компонентов доступа к БД AnyDAC. Сейчас, похоже, появилась необходимость более плотно обратиться к данной теме, а в базовом арсенале Delphi разработчиков появился FireDAC. Вкратце обрисую задачу.

Имеется некоторое Windows приложение, работающее с СУБД MS Access (опционально с MS SQL). Необходимо создать для данного приложения клиентскую часть, работающую под Android и частично реализующую функционал основного приложения. При этом данные должны храниться автономно, но по запросу пользователя синхронизироваться. Здесь сразу оговорю два момента. Во-первых задача абсолютно реальная и решать ее мне так или иначе придется. Во-вторых, сама по себе задача, без учета специфики конкретных СУБД, довольно типичная, в той или иной интерпретации, встречающаяся часто. Поэтому, допускаю, что подробное  описание подобного примера будет интересно читателям.

Здесь можно выделить три условные функциональные задачи:

  • обеспечение доступа к базам данных (внутренней, для автономной работы мобильного приложения и внешней, с которой работает основное приложение);
  • обеспечение репликации данных;
  • непосредственно, функциональная часть мобильного приложения.

Естественно, что локально на Android устройстве данные целесообразно хранить в SQLite базе. Более интересен вопрос синхронизации разных баз. Если бы базовое приложение использовало в качестве СУБД Inrebase, Oracle  или MySQL, то можно было бы подключиться к базе напрямую. При этом, в первом случае для доступа к БД мы могли бы воспользоваться FireDAC, а в случае с Oracle или MySQLUniDAC, или специальными компонентами доступа от DevART (ODAC и MyDAC, соответственно). Однако, в данном случае использовать прямое подключение к базе данных MS Access с мобильного устройства в принципе не возможно. Поэтому в данном случае проще использовать многозвенную архитектуру, а именно DataSnap.

купить UniDACкупить ODAC

И здесь опять возникает вопрос выбора компонентов доступа к БД. Вариантов здесь три. DBExpress, FireDAC и UniDAC. В очередной раз распишусь в своей нелюбви к DBExpress, хотя, возможно, это и субъективно. При использовании FireDAC в “классической” схеме DataSnap никаких дополнительных телодвижений использовать не придется. UniDAC использовать “в лоб” не получится, однако, этот набор компонентов так же работает с DataSnap и внятные описания имеются. Коммерческую составляющую, которая может отразится на выборе, я оставлю “за бортом”, поскольку в моем случае она не имеет значения.

купить RAD Studioкупить Delphi

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

Если оценивать уровень сложности субъективно, то в принципе, на уровне технологии приложение должно получиться не особо сложным. Естественно, многое зависит от логики самого приложения и сложности структуры БД.

На текущий момент я сделал небольшой тестовый пример подключения к мобильного Android приложения с БД MS Access с помощью FireDAC. Так же, думаю, будет целесообразно разобраться с тем как работает с DataSnap UniDAC. Эти примеры я планирую опубликовать в следующих постах. И, естественно, для полноты картины собираюсь сделать небольшой пример репликации данных.

Интересно узнать у читателей блога, приходилось ли им решать подобную задачу и какой подход вы при этом избрали.

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



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