when
Содержание
WHEN
используется в конструкции запросов SELECT или CASE
и как самостоятельный оператор для вылавливания исключений что и будет рассмотрено в этой заметке
Версии сервера
Firebird 1.5 Firebird 2.0
Формат
WHEN < SQLCODE код | GDSCODE код | ANY > DO <выражение> ;
Описание
Встроенная функция
Для обработки исключений в процедуре или тригере смотрите также EXCEPTION
GDSCODE - это номера ошибок из ibase.h, подробнее см. GDSCODES (Коды ошибок Firebird)
Пример
BEGIN ... WHEN SQLCODE -802 DO EXCEPTION E_ARITH_EXCEPT; WHEN SQLCODE -803 DO EXCEPTION E_KEY_VIOLATION; WHEN ANY DO EXCEPTION; END
См.также
Источник
%Firebird%\doc\sql.extensions\README.exception_handling
%Firebird%\doc\sql.extensions\README.context_variables
when.txt · Последнее изменение: 2009/02/16 18:49 (внешнее изменение)
Обсуждение
http://www.firebirdsql.org/doc/contrib/fb_1_5_errorcodes.pdf
http://www.firebirdsql.org/doc/contrib/fb_2_0_errorcodes.pdf
http://www.firebirdsql.org/doc/contrib/fb_2_1_errorcodes.pdf
Для перехвата исключений, определенных в базе CREATE EXCEPTION MY_EXCEPTION ''; … BEGIN
WHEN EXCEPTION MY_EXCEPTION DO
END …