Пример простого сервера приложения
В качестве примера рассмотрим процесс создания простого сервера приложения на основе удаленного модуля данных 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 запрещает передачу изменений, полученных от клиента, в набор данных связанного компонента. Вместо этого данные напрямую сохраняются в базе данных. Это увеличивает быстродействие приложения.