Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 5.doc
Скачиваний:
6
Добавлен:
01.05.2025
Размер:
1 Мб
Скачать
☆

2.2. Использование в приложениях модуля данных

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

Существует три типа модуля данных:

  • простой модуль данных;

  • удаленный модуль данных;

  • Web-модуль.

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

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

Рис. 5.15. Взаимосвязь компонентов приложения и таблицы БД

при использовании модуля данных

Модуль данных, как и форма, является контейнером для своих невизуальных компонентов, и для него создается модуль кода с расширением PAS. Добавле­ние модуля данных к проекту выполняется командой File/New/DataModule главного меню Delphi. В окне модуля компоненты размещаются таким же обра­зом, как и на форме (рис. 5.20). При выборе объекта в Инспекторе объек­тов отображаются его свойства, значения которых можно просматривать и из­менять.

Рис. 5.20. Модуль данных

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

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

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

procedure TForml.FormCreate(Sender: TObject);

begin

DataModule2.Tablel.DatabaseName: ='dbdemos' ;

DataModule2.Tablel.TableName: ='clients.dbf' ;

DataModule2.DataSourcel.DataSet:=DataModule2.Tablel;

DBGridl.DataSource:=DataModule2.DataSourcel;

DBNavigatorl.DataSource:=DataModule2.DataSourcel;

DataModule2.Tablel.Active:=true;

end;

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

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

uses unit2;

Ссылку на другой модуль можно написать самостоятельно, но Delphi дает воз­можность вставить ее автоматически. При выборе команды File/Use Unit... появляется диалоговое окно Use Unit (рис. 5.21). После выбора нужного модуля и нажатия кнопки ОК он добавляется в список.

Рис. 5.21. Окно выбора модуля

Если ссылка на требуемый модуль отсутствует, но в коде используется имя мо­дуля данных, то при компиляции приложения появляется диалоговое окно Information (рис. 5.22). В нем сообщается о том, что форма ссылается на дру­гую форму, объявленную в модуле, отсутствующем в списке uses формы. Для автоматического добавления модуля в список достаточно нажать кнопку Yes.

Рис. 5.22. Диалог добавления модуля в список uses

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

Замечание

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

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

  • отделить управление БД от обработки данных;

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

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

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

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

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

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

22