Форум: "Основная";
Текущий архив: 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.49 MB
Время: 0.005 c