Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / NULL Processing / 4 сообщений из 4, страница 1 из 1
13.12.2006, 14:58
    #34196880
ZUMA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NULL Processing
Существует таблица с таким триггером:

Property CONTACTID As %Numeric [ SqlColumnNumber = 2, SqlFieldName = CONTACT_ID

Trigger TBI1 [ Event = INSERT ]
{
set CI=0,RIN=0
set CI = {CONTACT_ID},RIN = {RIGHT_ID}

&sql(SELECT RIGHT_ID,CCOUNT INTO :RID,:CC FROM CL_CONT_SERV WHERE LEFT_ID = :CI and RIGHT_ID = :RIN)
if (SQLCODE = 0){
&sql(SELECT COUNT(*) INTO :CRN FROM CL_CUST_SERV WHERE (RIGHT_ID = :RIN) and (CONTACT_ID = :CI))
if (SQLCODE = 0){
set T = " CC="_CC_",RID="_RID_",CRN="_CRN
if (CRN >= CC) set %msg = "Превышен лимит "_CC_" предоставления этой услуги", %ok = 0
}
} else {set %msg = "Данная услуга не определена в договоре с этой организацией", %ok = 0}

}

Если в операторе INSERT есть поле {CONTACT_ID}, все работает нормально если его нет, а его может не быть, выбивает UNDIFINED, при обращении к {CONTACT_ID}.
Можно поставить InitialExpression, но такой вариант не вполне устраивает так как в поле не должно быть значения.
Как обойти UNDIFINED?
...
Рейтинг: 0 / 0
13.12.2006, 15:49
    #34197134
Sergei Obrastsov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NULL Processing
ZUMA Если в операторе INSERT есть поле {CONTACT_ID}, все работает нормально если его нет, а его может не быть, выбивает UNDIFINED, при обращении к {CONTACT_ID}.
Можно поставить InitialExpression, но такой вариант не вполне устраивает так как в поле не должно быть значения.
Как обойти UNDIFINED?
Можно запретить <UNDEFINED> в конфигурации Cache, тогда будет выдаваться <пусто> вместо
ошибки. Наверняка есть какой-то нормальный вариант, но я не работаю с SQL.
...
Рейтинг: 0 / 0
13.12.2006, 17:03
    #34197448
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NULL Processing
Как варианты:

1. Поставить set CI = $g({CONTACT_ID})
2. Попробовать использовать флаг признак {CONTACT_ID*C} и если оно нулевое (поле не менялось) жутко матерится в ответ.
...
Рейтинг: 0 / 0
14.12.2006, 12:06
    #34199319
ZUMA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
NULL Processing
$G помогло! Спасибо.
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / NULL Processing / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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