Здесь же мы остановимся на регистрации сервера приложения, использующего удаленный модуль данных TRemoteDataModuie (сервер Автоматизации), который чрезвычайно прост.
Для исполняемых файлов достаточно запустить сервер с ключом /regserver или даже просто запустить исполняемый файл.
В среде разработки ключ можно поместить в диалоге команды меню Run Parameters (рис. 21.2).
Рис. 21.2. Диалог параметров запуска приложения
Для удаления регистрации используется ключ /ипгедзегуег, но только в командной строке.
Для регистрации динамических библиотек применяется ключ /regsvr32.
Пример простого сервера приложения
В качестве примера рассмотрим процесс создания простого сервера приложения на основе удаленного модуля данных таетотеБагаМоёше. Для начала создадим новый проект - простое исполняемое приложение и сохраним его под именем 8Ш1р1еАрр8т (табл. 21.2). Этот проект входит в состав группы проектов з1тр1егчетосе, в нее впоследствии будет добавлено клиентское приложение.
Таблица 21.2. Файлы проекта SimpleAppSrvr
Файл |
Назначение |
uSimpleAppSrvr.pas |
Стандартный файл проекта |
SimpleAppSrvrTLB.pas |
Библиотека типов. Содержит объявления всех исполь- |
зуемых в проекте интерфейсов |
Таблица 21.2( окончание) |
|
Файл |
Назначение |
uSimpleRDM.pas |
Файл главногоудаленного модуля данных simpleRDM |
uSecondary.pas |
Фай л дочернего удаленного модуля данных Secondary |
Пример создания клиента для сервера приложения 5з.тр1еАрр5гуг рассматривается в гл. 22.
Главный удаленный модуль данных
Добавим в проект новый удаленный модуль данных, используя для этого Репозиторий Delphi (см. рис. 20.3). Затем в появившемся диалоге (см. рис. 21.1) зададим имя модуля - simpleRDM и его параметры:
□
способ создания - single instance - для каждого клиента создается собственный модуль данных;
• способ обработки запросов - Free (см. выше).
Метод класса updateRegistry для модуля данных создается автоматически и обеспечивает регистрацию и аннулирование регистрации сервера Автоматизации (см. листинг 21.1).
Одновременно с удаленным модулем данных автоматически создается библиотека типов и в ней дуальный интерфейс isimpleRDM и интерфейс диспетчеризации isimpleRDMDisp (см. ЛИСТИНГ 21.2).
( Примечание ^
Для каждого вновь созданного интерфейса автоматически назначается GUID.
Разместим в модуле simpleRDM компоненты для доступа к файлам демонстрационной базы данных (\Program Files\Common Files\Borland Shared\Data) через драйвер BDE и псевдоним DBDEMOS, который создается автоматически при инсталляции Delphi. Это компонент TDatabase, обеспечивающий соединение и три табличных компонента ттаЫе, инкапсулирующих наборы данных из таблиц Orders.db, Customer.db, Employee.db.'
Компонент соединения настроен на псевдоним DBDEMOS (свойство AliasName). В параметрах соединения заданы имя пользователя и пароль, а свойство LoginPrompt = False запрещает отображение диалога регистрации при открытии соединения.
Каждый табличный компонент связан с компонентом-провайдером TDataSetProvider. СЮЙСТЛЗО провайдера ResolveToDataSet = False запрещает передачу изменений, полученных от клиента, в набор данных связанного компонента. Вместо этого данные напрямую сохраняются в базе данных. Это увеличивает быстродействие приложения.