Продвижение сайта по поисковым запросам, контекстная реклама, качественный копирайтинг и рерайтинг, создание сайта под ключ, QA процедуры и аудит в ИТ, бизнес анализ в Киеве, Украина.

Поиск

Админ

SQLCODE sql


SQLCODE sql

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

1. Команда выполнилась без ошибки, но не произвела никакого действия. Для различных команд это выглядит по-разному:

а)         Для SELECT ни одна строка не выбрана запросом.

б)         Для FETCH последняя строка уже была выбрана, или ни одной строки не выбрано запросом в курсоре.

в)         Для INSERT ни одной строки не было вставлено (подразумевается, что запрос использовался, чтобы сгенерировать значения для вставки, и был отвергнут при попытке извлечения любой строки).

г)         Для UPDATE и DELETE ни одна строка не ответила условию предиката, и, следовательно, никаких изменений сделано в таблице не будет.

В любом случае, будет установлен код SQLCODE = 100.

2. Команда выполнилась нормально, не удовлетворив ни одному из выше указанных условий. В этом случае, будет установлен код SQLCODE = 0.

3. Команда сгенерировала ошибку. Если это случилось, изменения сделанные к базе данных текущей транзакцией, будут восстановлены (см. Главу 23).

В этом случае будет установлен код SQLCODE = некоторому отрицательному числу, определяемому проектировщиком. Задача этого числа — идентифицировать проблему так точно, насколько это возможно. В принципе, ваша система должна быть снабжена подпрограммой, которая, в этом случае, должна выполниться, чтобы выдать для вас информацию, расшифровывающую значение негативного числа, определенного вашим проектировщиком. В этом случае некоторое сообщение об ошибке будет выведено на экран или записано в файл протокола, а программа в это время выполнит восстановление изменений для текущей транзакции, отключится от базы данных и выйдет из нее.

Использование SQLCODE для управления циклами

Теперь мы можем усовершенствовать наш предыдущий пример для выхода из цикла автоматически, при условии, что курсор пуст, все строки выбраны, или произошла ошибка:

Look_at_more:=True;
EXEC SQL OPEN CURSOR Londonsales;
while Look_at_more and SQLCODE = O do
begin
EXEC SQL FETCH Londonsales
INTO :id_num, :Salesperson, :loc, :comm;
writeln (id_num, Salesperson, loc, comm);
writeln ('Do you want to see more data? (Y/N)');
readln (response);
If response = 'N' then Look_at_more:=False;
end;
EXEC SQL CLOSE CURSOR Londonsales;

Популярность: 6%




Оставить комментарий или два


Навигация

Блог / Главная / Разработка / SQLCODE sql

Инфо

Запись опубликовал admin 5 мая 2010 года и разместил в рубрике Разработка.   Запись имеет метки:   К статье пока нет комментариев. Вы можете быть первым.  

Случайные записи

Отслеживание действий sql Как работает соотнесенный подзапрос sql Проверка значений полей (CHECK) sql Внешний ключ и родительский ключ sql