Форум: "Corba";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
ВнизКак можно узнать, был ли запущен сервер вручную? Найти похожие ветки
← →
Sinsin (2005-07-12 12:05) [0]Уважаемые коллеги!
Имеется 3-уровневое MIDAS-приложение, связь осуществляется через SocketConnection. При старте клиентской части серверная часть запускается автоматически, все работает.
Однако, есть крайняя необходимость время от времени запускать серверную часть вручную. Причем, при ручном запуске она должна выполнить некоторые действия, которые при автоматическом запуске не нужны.
В связи с чем вопрос: как в теле сервера узнать, был ли он запущен автоматически, или вручную? (и можно ли вообще?)
Надеюсь на вашу помощь!
С уважением,
Sinsin
← →
Sinsin (2005-07-12 12:07) [1]P.S. Прошу прощения, второпях забыл указать: Delphi, Windows.
← →
Drakosha © (2005-07-12 12:18) [2]ИМХО
у тебя должен быть дата модуль и какаято форма(видимая или нет)
А дата модуль создаётся только при конекте клиента(не уверен но вроде так).
Можно при создании формы устанавливать какой нить флаг(переменную) а на дата модуле проверять есть она или нет.
← →
just_me (2005-07-12 14:49) [3]property StartMode
← →
sinsin (2005-07-12 16:29) [4]To Drakosha:
Спасибо за совет!
Ты абсолютно прав: RemotaDataModule создается только при коннекте клиента. У меня была идея, похожая на твою, но пока не удается ее реализовать:
из RDM можно с серверной формой творить что угодно, но все эти творения возымеют действие только ПОСЛЕ того, как эта серверная форма создастся и отобразится на экране. Например, заводим там bool-переменную Flag, из RDM присваиваем ей True. Присвоение проходит гладко. Однако, в событии OnShow серверной формы эта переменная оказывается все еще False! Не могу понять, отчего.:(
To just_me:
Насколько я понимаю, это свойство есть только при DCOM-связи (когда есть переменная ComServ), а у меня Socket. Или его можно как-то притянуть за уши?
Тем не менее - спасибо, я не знал, что хоть для DCOM есть такое красивое решение.
← →
just_me (2005-07-12 19:09) [5]Да вроде это без разницы. Для сервера на основе Socket все равно базовым будет TAutoObject, а для него можно спросить StartMode. Посмотри в unit OleAuto.pas
← →
Sinsin (2005-07-13 16:05) [6]Ты прав, спасибо большое за помощь!
Подключил в сервере модуль ComServ.pas - и можно резвиться теперь с ComServer.StartMode сколько угодно.:)
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2006.07.02;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.019 c