powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / 5.1 vs 5.0.14: сравнение сообщений об ошибках в CSP
7 сообщений из 7, страница 1 из 1
5.1 vs 5.0.14: сравнение сообщений об ошибках в CSP
    #33654165
Всем привет.
Есть класс (прайс-лист изделий):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Class priceList Extends (%Persistent) [ ClassType = persistent ]
{
Property PartNo As %String(CAPTION = "Артикул") [ Required ];

Property PartName As %String(CAPTION = "Название");

Property RetailPrice As %Numeric;

Index idxPartNo On PartNo;

}

Есть простая проверочная CSP-страница, запрашивающая %Id записи таблицы priceList и выводящая в ответ артикул изделия (поле PartNo).
Прошу обратить внимание, что внутри &js<> имя поля _НАМЕРЕННО_ указано с опечаткой: вместо "PartNo" записано "partNo", т.е. перепутан регистр одной буквы (согласитесь, бывает часто):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<html>
<body>
  Открыть объект с ID=
  <input type="text" id="objId" size= 5 >
  <input type="button" value="Открыть" onclick="#server( ..openObj(objId.value); )#">
<script language="cache" method="openObj" arguments="objId:%Integer">
    s xp=##class(Spar.OemPrice).%OpenId(objId)
    &js<alert('xp.PartNo=#(xp.partNo)#;')> // НЕСУЩЕСТВУЮЩЕЕ СВ-ВО!
</script>
</body>
</html>

Делаем класс в 5.0.14 и 5.1, заполняем его любыми данными.
Запускаем страницу вводим значение с существующим Id.
Сообщения об ошибках появляются в виде alert'ов.

Результат в 5.0.14:

A run-time error occured while executing page
Error: <PROPERTY DOES NOT EXIST>zOpenObj+1^csp.errtest.1
ErrorNo: 5002
CSP Page: /csp/..../%CSP.Broker.cls
Namespace: TEST
Class: %CSP.Broker
Routine: csp>test.1
Location: zopenObj+1

Результат в 5.1:
Http object responce incomplete or invalid.0,#V

То же сообщение в 5.1 будет, если попытаемся открыть объект в НЕсуществующим Id (в 5.0.x будет текст "<INVALID OREF>").

ВОПРОС: Как искать ошибку, если код будет посложнее на два-три порядка ?
Может, в журнале каком что-то пишется,в портале что-то настраивается или где-то еще ?

ЗЫ. И еще: поделитесь, плз, кто как ищет строку с ошибкой, если "штатный" отладчик MS IE не может показать точно её расположение (такое часто с ним бывает) ? Есть ли другие (т.е. нормальные) отладчики javascript'a ?
...
Рейтинг: 0 / 0
5.1 vs 5.0.14: сравнение сообщений об ошибках в CSP
    #33654672
Почитав доку, нашёл пока единственный (и корявый) выход:
вставить в начале метода
Код: plaintext
1.
<script language="cache" method="openObj" arguments="objId:%Integer">
строку
Код: plaintext
1.
  new $ETRAP  s $ETRAP="w $$logError^Utils()"  

и добавить в .mac-файл Utils рутину, выводящую сообщение об ошибке в виде alert'a и регистрирующую текст ошибки в глобале ^logError:
Код: plaintext
1.
2.
3.
4.
5.
6.
logError() PUBLIC {
  s ^logError($ZDT($H, 3 ))=$ZError
  w "alert('logError^Utils:\r"_$ZError_"\rcheck ^logError("_$ZDT($H,3)_")'); "
  s $ECode=""
  q ""
}

Но, во-первых, почему всё-таки не отрабатывает "штатный" обработчик, который выводил всё это в Cache' 5.0.x (см. предыдущий пост) ?

И, во-вторых, этот способ неудобен: строку
Код: plaintext
  new $ETRAP  s $ETRAP="w $$logError^Utils()"  
надо вставлять в начало КАЖДОГО server-метода, она почему-то "не видна", если её вставить в начало .csp-страницы в код типа такого:
Код: plaintext
1.
2.
3.
<script language="cache" runat="server">
s $ETRAP="w $$logError^Utils()"
</script>
Есть ли решение более изящное ?
...
Рейтинг: 0 / 0
5.1 vs 5.0.14: сравнение сообщений об ошибках в CSP
    #33654701
Решение есть: не извращаться и использовать нормальные технологии при разработке, а не эти домашние поделки от ISC. Назовите хотя бы одно средство разработки в поставке Cache, которое по качеству хотя бы приближалось к продуктам от MS/Borland и т.д.

CSP - это вообще технология на уровне ASP 10 лет назад: никакой поддержки разделения дизайна и бизнес-логики, никакой поддержки создания csp кода в Студии. Как правильно написал Гришкан в cache_ru ( сам вроде как работник ISC?):
"В сущности, CSP следует рассматривать, как: а) отработанный и поддерживаемый _транспортный_ механизм между веб-клиентом и БД; б) удобное средство для динамической генерации любых файлов, не обязательно HTML."

Вы на этом ТРАНСПОРТЕ собрались разрабатывать "код посложнее на два-три порядка"? Смешно.

А на самом деле грустно за тех, кому приходится это использовать :( Вообще ни одного нормального средства нет. Даже взять .Net провайдер (радовался, думал - наконец-то можно в нормальной Студии код писать). Как себе представляют разработчики ISC реальную ежедневную работу с визардом, создающим proxy классы? Каждый раз как что-то изменил в базе, нужно идти в визард и РУКАМИ нажимать кнопку generate? А если классов 100 и я хочу некоторые из них в разные файлы поместить, мне что делать???

Разработка приложений в Cache штатными средствами - это недоразумение. Наверное поэтому возникают проекты типа COS в ячейках Excel, собственно-ручные базы на основе Cache и т.п.

Самое главное, что все эти мучения не имеют никакого смысла. Если вы начнете использовать Cache через SQL/objects со всеми блокировками и транзакциями, попросите уровень изоляции выше грязного чтения, то скорость будет НИЖЕ, чем в любой из промышленных SQL databases.
Попробуйте сохранить 1000 записей через ojects в Cache и сделать 1000 inserts в MS SQL - Cache отдыхает на ПОРЯДОК!

Так что мой совет вам - бросайте это дело - берите нормальную базу, нормальные средства раработки и - за дело, а не за тестирование бреда, написанного в ISC.

P.S. Движок на М у них хороший - не спорю. Остальное спроектировано людьми, не читавшими основ ООП и патернов.
...
Рейтинг: 0 / 0
5.1 vs 5.0.14: сравнение сообщений об ошибках в CSP
    #33655231
MX  -- ALEX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть решение!Решение есть: не извращаться и использовать нормальные технологии при разработке, а не эти домашние поделки от ISC. Назовите хотя бы одно средство разработки в поставке Cache, которое по качеству хотя бы приближалось к продуктам от MS/Borland и т.д.
..................................................
P.S. Движок на М у них хороший - не спорю. Остальное спроектировано людьми, не читавшими основ ООП и патернов.

MX :
Движок на М
EXCEL на клиентах
Все COS команды в ячейках EXCEL

проектировать - весело
работает - быстро
====================

а вот раскрутить "штатные" средства CACHE
как то нас не заинтриговалo
действительно - тяжковато
...
Рейтинг: 0 / 0
5.1 vs 5.0.14: сравнение сообщений об ошибках в CSP
    #33656913
При всём уважении к ответившим, хотелось бы видеть комментарии на этот топик спецов из ISC (и только _по существу_ моего вопроса).
Уверен, что они смотрят этот форум.
...
Рейтинг: 0 / 0
5.1 vs 5.0.14: сравнение сообщений об ошибках в CSP
    #34013875
Up!

Будут ли господа из Интерсистемз отвечать на неудобные вопросы ? ;-)
(конкретно -- по отладке в 5.1, см. начало этого поста)
...
Рейтинг: 0 / 0
5.1 vs 5.0.14: сравнение сообщений об ошибках в CSP
    #34015510
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Напишите Вашему консультанту.
Он Вам поможет.
Результаты работы обубликуете на форуме!

Вадим
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / 5.1 vs 5.0.14: сравнение сообщений об ошибках в CSP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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