передать массив в запрос
#1
Отправлено 07 ноября 2008 - 13:16
На шаг раньше с помощью web_reg_save_param были собраны SelectionId (массив)
#2
Отправлено 08 ноября 2008 - 03:37
<SelectionId>{Array_1}</SelectionId>
Другое дело как вы будете узнавать какой элемент массива на какое место в запросе надо подставить. Но это уже логика приложения, которая должна быть вам известна.
#3
Отправлено 09 ноября 2008 - 10:54
web_reg_save_param("SelectionId", "LB=:SelectionId>", "RB/DIG=</ns##:SelectionId>", "Search=All", "Ord=All", LAST );
Оно отлавливает все SelectionId....
TotalNumberOfMatches=atoi(lr_eval_string("{SelectionId_count}"));
lr_output_message(lr_eval_string("{TotalNumberOfMatches}"));
а затем циклом вызвать все элементы массива...
for( i=1; i <= SelectionId_count; i++ ){
lr_save_string("SelectionId_","MySelectionId_");
lr_save_int(i,"index");
и в самом запросе вместо элемента массива вставить: {MySelectionId_}{index}.....
Но не сработало (((
#4
Отправлено 10 ноября 2008 - 10:30
В том то и основной вопрос: просто подставить элементы массива не совсем верно, т.к. размер массива может изменяться или быть совсем нулевым. Была мысль поступить следующим образом:
web_reg_save_param("SelectionId", "LB=:SelectionId>", "RB/DIG=</ns##:SelectionId>", "Search=All", "Ord=All", LAST );
Оно отлавливает все SelectionId....
TotalNumberOfMatches=atoi(lr_eval_string("{SelectionId_count}"));
lr_output_message(lr_eval_string("{TotalNumberOfMatches}"));
а затем циклом вызвать все элементы массива...
for( i=1; i <= SelectionId_count; i++ ){
lr_save_string("SelectionId_","MySelectionId_");
lr_save_int(i,"index");
и в самом запросе вместо элемента массива вставить: {MySelectionId_}{index}.....
Но не сработало (((
А что конкретно не получилось? Код не заработал или просто не правильно подставлялись элементы?
Спрашиваю, т.к. в принципе идея правильная...
Можете скинуть то, что у вас написано в первозданном виде :)
Про Тестинг
#5
Отправлено 10 ноября 2008 - 13:29
#6
Отправлено 10 ноября 2008 - 13:58
#7
Отправлено 10 ноября 2008 - 13:59
#8
Отправлено 10 ноября 2008 - 14:42
Нет, только HTML протокол
Я плохо знаю веб сервисы, но по-моему, именно они у вас и есть. Попробуйте их использовать.
#9
Отправлено 10 ноября 2008 - 15:17
С кодом все ясно... Чтобы он заработал надо сделать не простые вещи......
И то что приходит в ответ: Warning: The string 'Topic_Child_Id_' with parameter delimiters is not a parameter.
Во первых в свой "web_custom_request("Cobalt_19", " вы передаете не то что надо. А именно запись {Topic_Child_Id_}{index} не будет работать... Чтобы запрос сформировался правильно, нужно будет совершить ряд преобразований:
1. получить значение массива с необходимым вам индексом
2. найденное значение передать в текст запроса
3. передать текст запроса в сам запрос
Как это сделать, сходу не скажу, по старой причине - нет под рукой VUGen, чтобы проверить правильность...
Вот что я думаю по этому поводу...
Про Тестинг
#10
Отправлено 10 ноября 2008 - 15:55
#11
Отправлено 11 ноября 2008 - 08:18
sprintf(index,"%d",k);
sprintf(Child_Id_param, "{Topic_Child_Id_%s}", lr_eval_string(index));
sprintf(Child_Id_Val, "%s", lr_eval_string(Child_Id_param));
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных