Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.02;
Скачать: 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 вся ветка

Текущий архив: 2006.07.02;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.039 c
3-1146728733
Alexey V.
2006-05-04 11:45
2006.07.02
Курс валюты в выходные дни


2-1150309068
Naduev Aleksei
2006-06-14 22:17
2006.07.02
Tray


2-1150096295
RzCoDer
2006-06-12 11:11
2006.07.02
Ашипка при освобождении DLL


1-1148280945
deltav1
2006-05-22 10:55
2006.07.02
TTimer


15-1149402157
Servelat
2006-06-04 10:22
2006.07.02
Вопросы наСИльникам :)