Сейчас на сайте
Сейчас на сайте 0 пользователей и 0 гостей.

SQL коды

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

  1. 1. Команда выполнилась без ошибки, но не произвела никакого действия. Для различных команд это выглядит по разному:
    • Для SELECT, ни одна строка не выбрана запросом.
    • Для FETCH, последняя строка уже была выбрана, или ни одной строки не выбрано запросом в курсоре.
    • Для INSERT, ни одной строки не было вставлено ( подразумевается что запрос исполяьзовался чтобы сгенерировать значения для вставки, и был отвергнут при попытке извлечения любой строки.
    • Для UPDATE и DELETE, ни одна строка не ответила условию предиката, и следовательно никаких изменений сделано в таблице не будет. В любом случае, будет установлен код SQLCODE = 100.
  2. Команда выполнилась нормально, не удовлетворив ни одному из выше указанных условий. В этом случае, будет установлен код SQLCOD = 0.
  3. Команда сгенерировала ошибку. Если это случилось, изменения сделанные к базе данных текущей транзакцией, будут восстановлены( см. Главу 23 ). В этом случае будет установлен код SQLCODE = некоторому отрицательному числу, определяемому проектировщиком. Задача этого числа, идентифицировать проблему, так точно насколько это возможно. В принципе, ваша система должна быть снабжена подпрограммой, которая в этом случае, должна выполниться чтобы вы- дать для вас информацию расшифровывающее значение негатив- ного числа определенного вашим проектировщиком. В этом случае некоторое сообщение об ошибке будет выведено на экран или за- писано в файл протокола, а программа в это врем выполянит восстановление изменений для текущей транзакции, отключится от базы данных и выйдет из нее. Теперь мы можем усовершенствовать