Коды завершения команд
Корректно написанные приложения обязаны проверять код завершения каждого поданного ими запроса. При нормальном завершении запроса гарантируется, что приложение получило правильные (в контексте поданной команды) данные и дальнейший процесс обработки информации имеет смысл.
Если СУБД не может выполнить команду, то в приложение возвращается код завершения, указывающий на возможную причину ошибки. Проведя анализ кода завершения, можно выявить причину отказа в выполнении запроса и, в зависимости от ситуации, либо повторить запрос с правильными значениями параметров, либо прекратить работу приложения.
Интерфейс нижнего уровня предоставляет клиентскому приложению, в
общем случае, два кода завершения – код завершения, сформированный
ядром СУБД ЛИНТЕР
или непосредственно самим интерфейсом нижнего уровня (возвращается в
поле
CodErr
контрольного блока) и, в некоторых случаях,
дополнительный код завершения, формируемый операционной системой при выполнении
запросов ядром СУБД (возвращается в поле
SysErr
контрольного блока),
и детализирующий код завершения ядра СУБД. Например, если в поле
CodErr
возвращен код завершения
ERROPFIL
(«Ошибка открытия файла»), то в поле
SysErr
будет возвращено более подробное описание ошибки
(например, файл с заданным именем не найден, не разрешен совместный доступ к
файлу, нельзя открыть файл для заданной операции и т.п.).
При этом в разных операционных системах в случае идентичных ошибочных
ситуаций код завершения, возвращаемый в поле
CodErr
, будет всегда одинаков,
в то время как значение, возвращаемое в поле
SysErr
, в общем случае, будет отличаться.