Russian Belarusian English German Japanese Ukrainian

1.675

При конструировании формы невизуальные компоненты, используемые для доступа к данным, такие как DataSource или Table, размещаются в форме, но при выполнении приложения эти компоненты не видны. Поэтому их можно размещать в любом удобном месте формы, которая для них является контейнером - модулем. Кроме того, для размещения невизуальных компонентов, через которые осуществляется доступ к данным, предназначен специальный объект модуль данных.

Есть три типа модулей данных:

  1. Простой модуль данных.
  2. Удаленный модуль данных.
  3. Web-модуль.

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

Удаленный модуль данных предназначен для работы с удаленными БД в трехуровневой архитектуре «клиент-сервер» и используется для создания сервера приложения промежуточного уровня между приложением и сервером БД.

Web-модуль предназначен для работы с БД в сети Интернет и является посредником между обозревателем (программой просмотра Web-документов) и сервером БД.

Модуль данных, как и форма, является контейнером для своих невизуальных компонентов, и для него создается модуль кода с расширением cpp. Добавление модуля данных к проекту выполняется командой File\New\DataModule главного меню С++ Builder. В окне модуля компоненты размещаются так же, как и в форме. При выборе объекта в окне Инспектора объектов отображаются его свойства, значения которых можно просматривать и изменять.

При обращении к содержащимся в модуле данных компонентам для них указывается составное имя, в которое, кроме имени компонента, входит имя модуля данных. Составное имя имеет формат:

<Имя модуля данных>.<Имя компонента>

Далее приводится пример кода, в котором осуществляется обращение к компонентам модуля данных.

void __fastcall TForm1::FormCreate(TObject *Sender)
{
DataModule2->Table1->DatabaseName = "BCDEMOS";
DataModule2->Table1->TableName = "Clients.dbf";
DataModule2->DataSource1->DataSet = DataModule2->Table1;
DBGrid1->DataSource = DataModule2->DataSource1;
DBNavigator1->DataSource = DataModule2->DataSource1;
DataModule2->Tablel->Active = true;
}

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

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

#include "Unit2.h";

Ссылку на другой модуль можно написать самостоятельно, но С++ Builder позволяет вставить ее автоматически. При выборе команды File\lnclude Unit Hdr (Файл\Подключить заголовок модуля) появляется диалоговое окно Use Unit. После выбора нужного модуля и нажатия кнопки ОК соответствующее предложение препроцессора добавляется в модуль формы.

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

Помимо компонентов доступа к данным, которыми являются Session, Database, Table, Query, StoredProc, BatchMove и др., в модуле данных можно размещать невизуальные компоненты, не имеющие прямого отношения к БД, например, ImageList, OpenDialog или Timer.

При работе с модулем данных в Палитре компонентов доступны только невизуальные компоненты.

Модуль данных позволяет:

  • отделить управление БД от обработки данных;
  • создать модуль, совместно используемый несколькими приложениями.

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

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

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

Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Поиск по сайту