Коды завершения команд

Корректно написанные приложения обязаны проверять код завершения каждого поданного ими запроса. При нормальном завершении запроса гарантируется, что приложение получило правильные (в контексте поданной команды) данные и дальнейший процесс обработки информации имеет смысл.

Если СУБД не может выполнить команду, то в приложение возвращается код завершения, указывающий на возможную причину ошибки. Проведя анализ кода завершения, можно выявить причину отказа в выполнении запроса и, в зависимости от ситуации, либо повторить запрос с правильными значениями параметров, либо прекратить работу приложения.

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