Иллюстрированный самоучитель по Delphi 7 для профессионалов

Пример простого сервера приложения

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

Для начала создадим новый проект – простое исполняемое приложение и сохраним его под именем simpleAppSrvr (табл. 21.2). Этот проект входит в состав группы проектов simpleRemote, в нее впоследствии будет добавлено клиентское приложение.

Таблица 21.2. Файлы проекта simpieAppSrvr.

Файл Назначение
uSimpleAppSrvr.pas Стандартный файл проекта
SimpleAppSrvr_TLB.pas Библиотека типов. Содержит объявления всех используемых в проекте интерфейсов
uSimpleRDM.pas Файл главного удаленного модуля данных SimpleRDM
uSecondary.pas Файл дочернего удаленного модуля данных Secondary

Пример создания клиента для сервера приложения simpieAppSrvr рассматривается в гл. 22.

Главный удаленный модуль данных

Добавим в проект новый удаленный модуль данных, используя для этого Репозиторий Delphi (см. рис. 20.3). Затем в появившемся диалоге (см. рис. 21.1) зададим имя модуля – simpleRDM и его параметры:

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

Метод класса updateRegistry для модуля данных создается автоматически и обеспечивает регистрацию и аннулирование регистрации сервера Автоматизации (см. листинг 21.1).

Одновременно с удаленным модулем данных автоматически создается библиотека типов и в ней дуальный интерфейс isimpleRDM и интерфейс диспетчеризации ISimpleRDMDisp (см. Листинг 21.2).

Примечание
Для каждого вновь созданного интерфейса автоматически назначается GUID
.

Разместим в модуле simpleRDM компоненты для доступа к файлам демонстрационной базы данных (\Program Files\Common Files\Borland Shared\Data) через драйвер BDE и псевдоним DBDEMOS, который создается автоматически при инсталляции Delphi. Это компонент TDatabase, обеспечивающий соединение и три табличных компонента TTаblе, инкапсулирующих наборы данных из таблиц Orders.db, Customer.db, Employee.db.

Компонент соединения настроен на псевдоним DBDEMOS (свойство AliasName). В параметрах соединения заданы имя пользователя и пароль, а свойство LoginPrompt = False запрещает отображение диалога регистрации при открытии соединения. Каждый табличный компонент связан с компонентом-провайдером TDataSetProvider.

Свойство провайдера ResolveToDataSet = False запрещает передачу изменений, полученных от клиента, в набор данных связанного компонента. Вместо этого данные напрямую сохраняются в базе данных. Это увеличивает быстродействие приложения.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.