Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / миграция на 2010.1.2 / 20 сообщений из 20, страница 1 из 1
01.07.2010, 08:24
    #36716951
Александр К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
Доброе время суток! Столкнулся с такой проблемой: ошибка Http object response incomplete ... при вызове метода #server(XXX). Метод задан на csp на странице <script language="Cache" Method="XXX...> </script> (даже если он пустой). Причем! это касается только методов - расположенных (после компиляции) в csp.page.2.int. Все остально корректно отрабатывает...
...
Рейтинг: 0 / 0
01.07.2010, 13:21
    #36717639
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
попробуйте перегрузить все страницы
d $system.CSP.LoadPageDir("/ваше приложение","c")
...
Рейтинг: 0 / 0
01.07.2010, 13:42
    #36717701
Александр К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
Это не помогает. Вылетает при вызове вот тут (файл csp.karta.2.int): zReadBase(rev,city,kod,dom,kwr,lic,datei) If $quit { Quit $$zReadBase^csp.karta.2(.rev,.city,.kod,.dom,.kwr,.lic,.datei) } Else { Do zReadBase^csp.karta.2(.rev,.city,.kod,.dom,.kwr,.lic,.datei) Quit }
Метод ReadBase не возвращает значений. Если принудительно ставлю q value - то срабатывает ... но это не дело.
...
Рейтинг: 0 / 0
01.07.2010, 14:33
    #36717845
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
Александр КЭто не помогает. Вылетает при вызове вот тут (файл csp.karta.2.int): zReadBase(rev,city,kod,dom,kwr,lic,datei) If $quit { Quit $$zReadBase^csp.karta.2(.rev,.city,.kod,.dom,.kwr,.lic,.datei) } Else { Do zReadBase^csp.karta.2(.rev,.city,.kod,.dom,.kwr,.lic,.datei) Quit }
Метод ReadBase не возвращает значений. Если принудительно ставлю q value - то срабатывает ... но это не дело.
Метод либо возвращает значение (функция), либо нет (процедура), но никак не оба варианта.
...
Рейтинг: 0 / 0
01.07.2010, 14:36
    #36717852
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
TurkМетод либо возвращает значение (функция), либо нет (процедура), но никак не оба варианта.
Ну почему же...

Код: plaintext
1.
2.
3.
MyProc(Prm)
   ...
   q:$q returnvalue
   q

Будет возвращать если вызовут как функцию... И небудет возвращать если вызовут как процедуру...
...
Рейтинг: 0 / 0
01.07.2010, 14:40
    #36717869
Александр К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
Речь не об этом ...эта конструкция (см.выше) компилятора. В предыдущих версия вызов в ..2.int иначе отрабатывался.
...
Рейтинг: 0 / 0
01.07.2010, 15:11
    #36717987
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
krvsaTurkМетод либо возвращает значение (функция), либо нет (процедура), но никак не оба варианта.
Ну почему же...

Код: plaintext
1.
2.
3.
MyProc(Prm)
   ...
   q:$q returnvalue
   q

Будет возвращать если вызовут как функцию... И небудет возвращать если вызовут как процедуру...
Это Cache позволяет себе такие вольности. Конечно, в некоторых специфических случаях за счет этого можно немного ускорить выполнение кода.
Я этим никогда не пользовался и никому не рекомендую.

Александр КРечь не об этом ...эта конструкция (см.выше) компилятора. В предыдущих версия вызов в ..2.int иначе отрабатывался.
Т.е. в прошлой версии .2.int файл генерировался идентичным тому, что генерируется в 2010.1, а изменилось лишь выполнение кода?
С какой предыдущей версией вы до этого работали? Upgrade Checklist-ы проверяли?
...
Рейтинг: 0 / 0
01.07.2010, 15:39
    #36718075
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
TurkЯ этим никогда не пользовался и никому не рекомендую.
Нормально работает... Можно рекомендовать.

Но у тебя, как я понял, проблема не в этом...
...
Рейтинг: 0 / 0
02.07.2010, 06:20
    #36719105
Александр К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
сравниваю с 5.0.хх, код метода не менялся...файлы *.int в 2010.1.2 формируются по другому (вызов отличается) и отрабатывает не корректно.
...
Рейтинг: 0 / 0
02.07.2010, 08:33
    #36719159
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
Александр Ксравниваю с 5.0.хх, код метода не менялся...файлы *.int в 2010.1.2 формируются по другому (вызов отличается) и отрабатывает не корректно.
Код метода zReadBase тоже отличается?
Можете показать код вызова метода ReadBase() и тело самого метода (и из int-файла, и из cls/csp).
А также показать полное описание ошибки. Если включена пользовательская страница обработки ошибок, то значения полей %request.Data, имена которых начинаются на "Error:".

krvsaTurkЯ этим никогда не пользовался и никому не рекомендую.
Нормально работает... Можно рекомендовать.

Я к тому, что это нестандартный (читай, нежелательный) прием для программирования в общем случае, а не для Cache в частности.
Если хочется возвращать значение "условно", то лучше делать это так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
MyProc(Prm,&returnvalue)
   ...
   if ($d(returnvalue))
   {
      ...
   }
   q
...
Рейтинг: 0 / 0
02.07.2010, 09:15
    #36719208
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
Turk , наверняка в каждом языке найдётся что-то "нестандартное" для других... Но это не онраничивает его использование.
Другле дело как поступать отдельно взятому человеку/организации... Это конечно каждый решает сам.
...
Рейтинг: 0 / 0
02.07.2010, 10:27
    #36719338
Александр К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
положим метод пустой, результат тот же... ошибку писал ранее.
...
Рейтинг: 0 / 0
02.07.2010, 11:36
    #36719512
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
Александр Кположим метод пустой, результат тот же... ошибку писал ранее.
Ошибка из первого поста говорит, что парсер ответа от Cache не смог разобрать его (см. файл <директория_cache>\csp\broker\cspxmlhttp.js).
Можно увидеть полный текст строки ошибки?
...
Рейтинг: 0 / 0
02.07.2010, 14:03
    #36719915
Александр К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
простой пример:
Вариант 1)
<script language="Cache" Method="Test" Arguments="">
&javascript<alert('#($quit)#');>
</script>
и
Вариант 2)
<script language="Cache" Method="Test" Arguments="">
&javascript<alert('#($quit)#');>
q 1
</script>
Вызов из csp.karta.1.int (после компиляции) :
zTest() If $quit { Quit $$zTest^csp.karta.2() } Else { Do zTest^csp.karta.2() Quit }
Работает только вариант 2) ...т.к. $quit в обоих случаях истина...как ни странно.
...
Рейтинг: 0 / 0
02.07.2010, 14:59
    #36720109
Блок А.Н.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
Вот не люблю когда так пишут:
сначала в методе каше постановку html или js, а потом в это же постановку #()#
Почему сразу не написать:

w !,"alert('",$quit,"');"

Кстати, чему, по вашему в этот момент равно $quit?
...
Рейтинг: 0 / 0
02.07.2010, 15:00
    #36720117
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
Александр Кпростой пример:
Вариант 1)
<script language="Cache" Method="Test" Arguments="">
&javascript<alert('#($quit)#');>
</script>

Сгенерированный код для метода Test при явном отсутствии quit в конце метода отличается в Cache 5.0 и Cache 5.1+:
а) Cache 5.0:
Код: plaintext
1.
2.
w "alert('"_$quit_"');"
q ""
б) Cache 5.1+:
Код: plaintext
1.
2.
w "alert('"_$quit_"');"
q
Подробности тут .

Александр КВызов из csp.karta.1.int (после компиляции) :
zTest() If $quit { Quit $$zTest^csp.karta.2() } Else { Do zTest^csp.karta.2() Quit }
Работает только вариант 2) ...т.к. $quit в обоих случаях истина...как ни странно.
Значение $quit не зависит от наличия в конце метода команды quit, а зависит от способа вызова соответствующего метода, т.е. от того, во что преобразуется при компиляции конструкция #server(...)#.
...
Рейтинг: 0 / 0
05.07.2010, 06:24
    #36722464
Александр К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
так пишут специально для форума :) ... видимо, никто не пытался запустить, к примеру метод Test(вариант 1), из "программы переполнения *.2.int"
...
Рейтинг: 0 / 0
05.07.2010, 07:14
    #36722504
Александр К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
оба варианта отрабатываютzTest() If $quit { Quit $$zTest^csp.karta.2() !!!! } Else {... - откуда и ошибка. Дак чему равен $quit, в данный момент ? или чему должен быть...
...
Рейтинг: 0 / 0
05.07.2010, 08:13
    #36722534
Turk
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
Александр Ктак пишут специально для форума :)
Причину ошибки в вашем случае (при переходе с 5.0 на 2010.1) я написал. Добавьте
Код: plaintext
q ""
в конец вашего метода, и проблема пропадет.
Александр К ... видимо, никто не пытался запустить, к примеру метод Test(вариант 1), из "программы переполнения *.2.int"
Если есть подозрение, что системный код генерируется/вызывается неправильно, то пишите на WRC. Это их работа, а не форумных участников.
...
Рейтинг: 0 / 0
05.07.2010, 08:52
    #36722558
Александр К
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
миграция на 2010.1.2
cогласен ... уж больно проблематично, перерывать весь код и добавлять q "", по этому и поднял этот вопрос.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / миграция на 2010.1.2 / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]