Вниз
Скачать: CL | DM;

Как можно узнать, был ли запущен сервер вручную?   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.029 c
2-1149790180
Ben-T
2006-06-08 22:09
2006.07.02
ComboBox


2-1150432976
Kristina_spb
2006-06-16 08:42
2006.07.02
на сколько нужно делить Кб чтоб получить Гб?


4-1143371475
SergV
2006-03-26 15:11
2006.07.02
Своя панель меню


15-1148979437
MsGuns
2006-05-30 12:57
2006.07.02
Администрирование SQL.


2-1150108493
Старый пляж
2006-06-12 14:34
2006.07.02
Помогите не знаю как сделать!




   Наверх