Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];

Вниз

Web Server Application и Глобальные переменные?   Найти похожие ветки 

 
Shlomo ©   (2005-09-13 10:11) [0]

Здравствуйте!
Помогите, пожалуйста, разобраться.

Создаю обычное «Web Server Application» приложение, однако выясняется, я не могу хранить в этом модуле глобальные переменные. Нужно сохранять некоторые параметры. Как это сделать?

Please, help!


 
Digitman ©   (2005-09-13 10:22) [1]


> не могу хранить в этом модуле глобальные переменные


глобальные переменные в модуле не "хранятся", а объявляются и используются


 
Shlomo ©   (2005-09-13 10:32) [2]

ОК. Согласен!:)
Прошу прошения.

Хорошо. Как объявить, чтобы потом использовать?


 
Плохиш ©   (2005-09-13 10:48) [3]


> Shlomo ©   (13.09.05 10:32) [2]
> ОК. Согласен!:)
> Прошу прошения.
>
> Хорошо. Как объявить, чтобы потом использовать?


 var GlobalVar: <Type>;


 
Digitman ©   (2005-09-13 10:54) [4]


> Создаю обычное «Web Server Application» приложение


какое такое "обычное" ?

Эксперт, запускаемый по File -> New -> Web Server Application, предлагает создать аж 5 различных по назначению и структуре проектов ! И все они "обычные" ..

Какой из них ты имеешь ввиду ?


 
Плохиш ©   (2005-09-13 10:59) [5]


> Digitman ©   (13.09.05 10:54) [4]
> Какой из них ты имеешь ввиду ?

А не пофигу, какое он имеет ввиду? Главное, что глобальные переменные (в терминах объект паскаля) есть во всех. А что он под этим термином подразумевает, это его проблема. Пусть книжки почитает для начала.


 
Digitman ©   (2005-09-13 11:04) [6]


> Плохиш ©   (13.09.05 10:59) [5]


> А не пофигу


да пофигу, конечно же .. это бесспорно ..

другой вопрос, что автор скорей всего имел ввиду не глобальность идентификатора в проекте с т.з. Делфи, а ран-тайм-доступность значения некоей объявленной им переменной из разных экз-ров модуля


 
Плохиш ©   (2005-09-13 11:18) [7]


> Digitman ©   (13.09.05 11:04) [6]

Телепат, однако :-)
Только непонятно, зачем нужны при обработке запроса от Васи данные из запроса от Пети? К тому нет никакой гарантии, что эти модули выполняются в одно время. :-)


 
Digitman ©   (2005-09-13 11:31) [8]


> Плохиш ©   (13.09.05 11:18) [7]


протелепатировать в дан.случае не так уж трудно)


> непонятно, зачем нужны при обработке запроса от Васи данные из запроса от Пети? К тому нет никакой гарантии, что эти модули выполняются в одно время


а вот это уже - на совести автора .. мои телепатические способности на этом исчерпаны)


 
Shlomo ©   (2005-09-13 13:04) [9]

Ещё раз прошу прошения. Ваши непонятки связаны с тем, что я "чайник".
Создаю обычное Web приложение со вкладки "New". Появляется обычный WebModule.
Когда приложение загружается срабатывает событие ModuleCreate, затем когда "переходишь на вторую страницу" ещё раз срабатывает этот метод, соответственно все глабальные переменные обнуляются, а мне надо хранить их значение.


 
Джо ©   (2005-09-13 13:10) [10]

1. Храни их в файле.
2. Храни их в Memory Mapped Files


 
DiamondShark ©   (2005-09-13 13:13) [11]

Это всё потому, что протокол HTTP -- это протокол без состояния.
После того, как сервер сгенерировал и отправил клиенту ответ, он про этого клиента забыл. Новый запрос -- это новый клиент.

Эмуляция состояния не входит в задачу веб-сервера, это целиком забота приложения.
Для сохранения состояния надо использовать какой-либо внешнее хранилище (напр. БД), и как-то идентифицировать одного и того же клиента (обычно для этого используются специльные куки).


 
Digitman ©   (2005-09-13 13:16) [12]


> Shlomo ©   (13.09.05 13:04) [9]


> Ваши непонятки связаны с тем, что я "чайник"


нет, ты не "чайник"

"Чайник" обычно что видит, то и говорит.
А видеть он должен при выборе File->New..-> Web Server Application не какое-то там непонятное "обычное Web приложение", а один из 5-ти предложенных ему варианов проектов :
- ISAPI/NSAPI (DLL)
- CGI Stand-alone (EXE)
- Apache 1.x SO (DLL)
- Apache 2.x SO (DLL)
- Web App Debugger (EXE)

Ты КАКОЙ из этих вариантов выбрал ?!


 
Shlomo ©   (2005-09-13 13:38) [13]

- CGI Stand-alone (EXE)


 
Digitman ©   (2005-09-13 13:45) [14]


> Shlomo ©   (13.09.05 13:38) [13]


при обслуживании очередного кл.запроса создается новый процесс того самого твоего Stand-alone (EXE) - приложения.
Со всеми вытекающими.


 
Shlomo ©   (2005-09-13 14:18) [15]

ОК. И что же делать?


 
Digitman ©   (2005-09-13 14:24) [16]

известно что)
снять штаны и бегать)

или объяснить условия задачи без хныканья а-ля "я - чайник"..


 
Shlomo ©   (2005-09-13 14:29) [17]

Иногда объяснить задачу сложнее чем снять штаны и трусы


 
Digitman ©   (2005-09-13 14:43) [18]

и не надо ее объяснять.

создай простейший проект вида :

programm Dummy;

uses ..

var GlobalVar: Integer; // ЧЕМ не глобальна сия переменная ?!

begin
 GlobalVar := GetCurrentProcessId;
 ShowMessage("GlobalVar = " + IntToStr(GlobalVar));
end;

запусти более одного процесса - экз-ра приложения, описанного данным проектом.

подумай над увиденным тобой.


 
Плохиш ©   (2005-09-13 15:10) [19]


> Shlomo ©   (13.09.05 14:18) [15]
> ОК. И что же делать?

А ответы [10] и [11] ну совсем не помогли?
Тогда читай книжки, смотри примеры, поставляемые с Делфи. В интернете информации немерянно, наконец.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.10.02;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.005 c
1-1126003954
simpson
2005-09-06 14:52
2005.10.02
Динамический массив - константа


1-1126250851
alsov
2005-09-09 11:27
2005.10.02
Устройство работающее через COM порт


1-1126126501
WonderfulDay
2005-09-08 00:55
2005.10.02
Thread.priority>=tpNormal;


1-1126346249
kblc
2005-09-10 13:57
2005.10.02
Методы com


1-1126019229
Relaxxx
2005-09-06 19:07
2005.10.02
2 вопроса:разделитель дробной части и popupMenu не закрывать по





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский