Обработка результатов выполнения
Для получения результатов выполнения хранимой процедуры выполнить функцию LINTER_GetCursorOption со следующими параметрами:
-
тип характеристики –
cProcArgDesc; -
буфер ответа – адрес структуры ARGPROC_OUT;
-
номер параметра хранимой процедуры (
Column number) должен быть равен 0 («результат хранимой процедуры»).
Проверить код завершения функции LINTER_GetCursorOption:
-
если функция завершилась успешно, то структура ARGPROC_OUT содержит описание результата;
-
если функция завершилась с кодом
LINAPI_ERROR(не успешно), то это означает, что процедура закончилась с исключением. При этом код завершения ядра СУБД ЛИНТЕР равен 7201 («Процедура завершилась с исключением»), а системный код завершения – номер сгенерированного процедурой исключения; -
в случае отрицательных значений номеров исключений, меньших -13, исключение является пользовательским (CUSTOM) с номером на 1 больше, чем значение системного кода *-1 (например, в случае пользовательского исключения 2005 возвращаемое значение номера исключения будет -2004).
Установка бита fNULL в флагах описания результата (поле Flags) означает возврат NULL-значения.
Если установлен бит fCursor флагов дескриптора результата, то результат является курсором.
Получить результат выполнения хранимой процедуры и возвращаемые ею параметры, можно также с помощью функции LINTER_GetData. В случае если результатом выполнения процедуры является курсор, LINTER_GetData возвращает идентификатор курсора, соответствующего результату.
Этот идентификатор может быть использован для выполнения LINTER_Fetch, LINTER_GetData, LINTER_GetRowBuffer и т. п.