SQLCODE
Хорошо было бы знать, когда данные будут исчерпаны, чтобы можно было сообщить об этом пользователю, и цикл завершился бы автоматически. Это даже более важно, чем, например, знать, что команда SQL выполнена с ошибкой. Переменная SQLCODE (называемая еще SQLCOD в ФОРТРАНе) предназначена для того, чтобы обеспечить эту функцию. Она должна быть определена как переменная главного языка и должна иметь тип данных, который в главном языке соответствует одному из точных числовых типов SQL, как это показано в Приложении B. Значение SQLCODE устанавливается каждый раз, когда выполняется команда SQL.
В основном существуют три возможности:
- Команда выполнилась без ошибки, но не произвела никакого действия. Для различных команд это выглядит по разному:
а) Для SELECT, ни одна строка не выбрана запросом.
б) Для FETCH, последняя строка уже была выбрана, или ни одной строки не выбрано запросом в курсоре.
в) Для INSERT, ни одной строки не было вставлено (подразумевается, что запрос использовался, чтобы сгенерировать значения для вставки, и был отвергнут при попытке извлечения любой строки.
г) Для UPDATE и DELETE, ни одна строка не ответила условию предиката и, следовательно, никаких изменений в таблице сделано не будет. В любом случае будет установлен код SQLCODE = 100.