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

К сожалению, до сих пор опубликовано довольно мало материалов, посвященных практической работе в FireMonkey. Даже не смотря на то, что недавно была выпущена третья версия платформы и “новой” ее можно назвать с натяжкой. В данной серии постов мне хотелось бы детально описать полный цикл создания FireMonkey приложения, работающего с базой данных. Я преследую сразу две цели. Во-первых, создать пример для начинающих. Во-вторых, показать реальные возможности FireMonkey в том виде, в котором платформа существует сейчас.

Купить Delphi XE4 у официального реселлера. Скидка до 30-го июня

Купить Delphi XE4 у официального реселлера. Скидка до 30-го июня

Выбор средств разработки

Исходя из означенных целей, я буду использовать Delphi XE4 в качестве средства разработки.  SQLite в качестве СУБД.  Для доступа к данным – FireDAC, который совсем недавно появился в составе Delphi. В качестве средства инструмента для управления БД SQLiteSQLite Administrator (по рекомендации Владислава Баженова, в блоге которого вы можете найти достаточно материалов по работе с SQLite в Delphi).

Задача

Для примера я выбрал не сложную прикладную задачу, которая предусматривает использования нескольких таблиц. Некий аналог хорошо известного приложения “Купи батон!”, служащего для ведения списков покупок. В данном варианте будет предусмотрен расширяемый список товаров и, собственно, списки покупок, в каждый из которых можно добавлять необходимые товары с указанием их количества и отметкой о факте покупки (куплен товар или нет). Проект предполагает поэтапное наращивание функционала и, возможно, перевод на другие платформы.

Разработка структуры БД

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

Для хранения данных используется три таблицы: Product, ShopingList и List_Product.

В таблице Product хранится перечень всех возможных продуктов. Для хранения названий списков покупок и дат их формирования используется таблица ShopingList. Коды продуктов, входящих в список и их количество содержаться в таблице List_Product.

SQL код, предназначенный для формирования таблиц приведен ниже.

CREATE TABLE [List_Product] (
[ID] INTEGER  NOT NULL PRIMARY KEY AUTOINCREMENT,
[ListId] INTEGER  NOT NULL,
[ProductId] INTEGER  NOT NULL,
[ProdNumb] NUMERIC  NULL,
[Complete] BOOLEAN  NULL
);

CREATE TABLE [Product] (
[ID] INTEGER  NOT NULL PRIMARY KEY AUTOINCREMENT,
[Title] VARCHAR(50)  NULL
);

CREATE TABLE [ShopingList] (
[ID] INTEGER  NOT NULL PRIMARY KEY AUTOINCREMENT,
[Title] VARCHAR(25)  NULL,
[Dt] DATE DEFAULT CURRENT_DATE NULL
);

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

Пока же запустите SQLite Administrator и создайте новую БД (DataBase | New), указав имя файла в который следует ее сохранить; вставьте приведенный выше текст SQL запроса и нажмите клавишу F8. Запрос будет выполнен, таблицы – созданы. Для того, что бы увидеть результат необходимо обновить список объектов базы (F5).

Создание Delphi проекта

Прежде чем приступать к работе непосредственно в Delphi необходимо установить FireDAC. Для тех, кто не читал предыдущих моих постов, напомню, что FireDAC это библиотека, позволяющая осуществлять доступ к InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Advantage DB, Firebird, Access, Informix из Delphi и C++ Builder. Владельцы старших редакций Delphi (начиная с Enterprise) могут скачать установочный пакет с официально сайта Embarcadero. Владельцы же Delphi/RAD Studio Professional могут приобрести FireDAC отдельно.

После установки FireDAC создадим новый FireMonkey проект.

IDE Delphi XE4 внешне мало чем отличается от своих предшественников, за исключением, пожалуй, внешнего вида стартовой страницы. В меню File выберем пункт New| FireMonkey Desktop Application – Delphi.

newFMProj

В появившемся диалоге выбираем HD FireMonkey Application. Сразу после создания нового приложения я рекомендую произвести следующие действия:

  1. Переименовать главную форму (я обычно использую имя fMain).
  2. Сохранить в отдельную папку модуль главной формы, присвоив  ему уникальное имя (я обычно использую имя uMain).
  3. Присвоить файлу проекта уникальное имя.
  4. Настроить опции автосохранения проекта (если это не было сделано раньше) меню Tools|Options (см. рисунок).

autosave

Поскольку приложение будет использовать компоненты доступа к БД, целесообразно использовать DataModule – специальный контейнер для компонентов доступа к данным. Для этого используем пункт меню File| New | Other и в появившемся диалоге выбираем Data Module. В данном случае я также рекомендую переименовать название формы и модуля (DM и uDM, соответственно).

Подключение к базе данных

Собственно, на этом подготовительный этап по созданию приложения можно считать законченным. И мы приступаем непосредственно к построению приложения. Для того, что бы обеспечить подключение к базе данных, прежде всего, следует разместить в Data Module компонент TADConnection. Двойной щелчок по компоненту вызывает диалог настройки подключения. Свойству DriverID следует указать значение SQLite. В качестве значения параметра DataBase укажите путь к сохраненной ранее базе. Проверьте правильность настроек (кнопка Test).

ADConnectionDialog

Закройте Connection Dialog с помощью кнопки Ok, подтвердив тем самым внесенные изменения. В инспекторе объектов измените значения свойства LoginPrompt на False. Для того, что бы активировать соединение с базой, установите значение свойства Connection в True.  Это будет работать в режиме проектирования, но для того, что бы использовать TADConnection в Runtime этого не достаточно.

Для того, что бы полноценно использовать соединение при работе программы следует разместить на форме еще два компонента: TADPhysSQLiteDriverLink и TADGUIxWaitCursor. Свойство Provider последнего обязательно нужно установить в значение FMX.

Теперь мы можем проверить будет ли установлено соединение в Runtime.

Откройте главную форму приложения и подключите модуль uDM в список используемых модулей (это можно сделать нажав комбинацию клавиш Alt+F11). В исходном коде должна появиться строка

uses uDM;

Теперь поместите на форму кнопку TButton и напишите следующий обработчик события onClick.

procedure TfMain.Button1Click(Sender: TObject);
begin
   DM.ADConnection1.Connected:= True;
   if DM.ADConnection1.Connected then
   ShowMessage('ADConnection is connected.');
end;

Если вы все сделали правильно, то при нажатии на кнопку во время работы программы компонент установит соединение с базой и будет выведено уведомление: “ADConnection is connected”.

Таким образом, мы установили соединение с SQLite базой данных. Как видите, процедура создания приложения и настройки соединения в FireMonkey не особо отличается от аналогичной процедуры в VCL. Однако, забегая вперед скажу, что дальнейший процесс разработки БД-ориентированных приложений с помощью FireMonkey будет содержать более существенные отличия, прежде всего, связанные с использованием механизма LiveBinding. Но об этом я планирую рассказать в следующей части публикации.

 


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

5 комментариев: Создание FireMonkey приложения с использованием FireDAC. #0

Ответить на donmutti Отмена ответа

Ваш 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
Яндекс.Метрика