Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Web-модули, странное поведение шаблона [D7, WinXP]


Megabyte ©   (2006-12-27 14:54:00) 

Есть 2 события Веб-модуля:
1)Twm_status.WebModule1wai_stateAction - событие самого модуля по вызову действия
2)Twm_status.pp_stateHTMLTag - событие TPageProducer на форматирование нестандартных тегов.

Я получаю с html-формы один параметр, и вывожу в шаблон 4 значения:текущую дату, входной параметр, еще 2  - выборка из базы по параметру.
Вот код методов:

var
 ...
 param_imei : string;
...
procedure Twm_status.WebModule1wai_stateAction(Sender: TObject;
 Request: TWebRequest; Response: TWebResponse; var Handled: Boolean);
begin
 param_imei := Request.QueryFields.ValueFromIndex[0];
 Response.Content := pp_state.Content;
end;

procedure Twm_status.pp_stateHTMLTag(Sender: TObject; Tag: TTag;
 const TagString: String; TagParams: TStrings; var ReplaceText: String);
var
br, st : string;
begin
 if TagString = 'curdate' then ReplaceText := DateToStr(now);
 fdb_scrp.Connected := true;
 ftr_state.Active := true;
 fdst_state.ParamByName('imei').AsString := param_imei;
 fdst_state.Prepare;
 if TagString = 'imei' then ReplaceText := param_imei;
 fdst_state.Active := true;

 br := fdst_state.FieldList.Fields[0].AsString;
{if (TagString = 'brmod') and (fdst_state.FieldList.Fields[0].AsString <> '')
   then ReplaceText := br
 else
   ReplaceText := 'null';
 if (TagString = 'status') and (fdst_state.FieldList.Fields[1].AsString <> '')
   then ReplaceText := fdst_state.FieldList.Fields[1].AsString
 else
   ReplaceText := 'null'; }
end;

1) Если запускать так, с закомментированным кодом, то 2 первых тега форматируются правильно.
Если же раскомментировать, то все теги формируются со значением null.
Это 1-я непонятка.
2) Я не уверен, что происходит выборка правильно в fdst_state
Но это же не должно влиять никак на форматирование остальных тегов???
Отдельно от ВЕБ-модуля уже все 100 раз протестировал, сам запрос работает правильно. Дело может быть в ординарных ковычках: но я уже и с ними пробовал, и без них...
2-я непонятка.


Megabyte   (2006-12-28 12:16:00) [1]

Люди.
Такое вот дело.
Если я параметр беру из Request.QueryFields.QueryFields.Values['imei'], то запрос не выдает данные(возвращает пустой набор).
param_imei := {chr(39) +} Request.QueryFields.Values['imei'] {+ chr(39)};
...
fdst_state.ParamByName('imei').AsString := param_imei;

Если я то же значение присваиваю явно параметру, то запрос возвращает нужное значение.
fdst_state.ParamByName('imei').AsString := '352262010494193';

Создал обычное приложение, все проверил, все работает корректно;
Пробовал параметр в ковычках передавать и без(они там закомментированны);
Даже сравнивал длину и значения param_imei и 352262010494193 на предмет лишних пробелов, все норм.

Не понимаю, м.б. глюк какой в Дельфе?


Megabyte   (2006-12-28 09:17:00) [2]

Закройте тему, как всегда всему виной невнимательность, по крайней мере по 1-му пункту...


Наверх

Титульная страница Поиск, карта сайта Написать письмо