Обработка ошибок трансляции хранимых процедур (триггеров)
Для получения подробного описания ошибок трансляции следует подать
команду
GETE
по тому же каналу, по которому подавался
запрос
на трансляцию
(CREATE PROCEDURE
или
ALTER PROCEDURE), передавая ей в качестве входного параметра код завершения
Proc_Translation_Error
(«ошибка трансляции хранимой процедуры (триггера)»).
В этом случае в буфере
RowBuf
вместо текстового описания кода завершения возвращается информация
следующего вида:
-
количество ошибок трансляции (2 байта);
-
соответствующее количество описателей ошибок трансляции.
Описатель ошибки содержит заголовок и, в зависимости от типа
ошибки, дополнительные параметры.
Заголовок представляет собой структуру типа
ERRS_DESCR
,
которая описана в заголовочном файле
inter.h
.
Заголовок описателя ошибки содержит следующие поля:
Имя поля | Значение | |
---|---|---|
CodErr
|
Код конкретной ошибки трансляции (например, неизвестный
оператор процедурного языка); расшифровка (текст) этого кода
может быть получена путем подачи команды
| |
Row
|
Номер строки исходного текста процедуры (триггера), в которой
обнаружена синтаксическая ошибка.
Если значение поля
| |
Position
|
Номер позиции в строке
| |
ArgType
|
Характеристика диагностического сообщения.
Если значение
|
Пример типовой последовательности анализа ошибок трансляции процедур на языке C/C++ приведен в приложении 12.