WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » Использование SQL с другим языком (вложенный SQL). Предложение WHENEVER

Использование SQL с другим языком (вложенный SQL). Предложение WHENEVER


Дата публикации: 11-07-2008

Это удобно для выхода при выполненом условии - все строки выбраны. Но если вы получили ошибку, вы должны предпринять нечто такое, что описано для третьего случая, выше. Для этой цели, SQL предоставляет предложение GOTO. Фактически, SQL позволяет вам применять его доста- точно широко, так что программа может выполнить команду GOTO автомати- чески, если будет произведено определенное значение SQLCODE. Вы можете сделать это соввместно с предложением WHENEVER. Имеется кусгок из при- мера для этого случая:

 

EXEC SQL WHENEVER SQLERROR GOTO Error_handler;

EXEC SQL WHENEVER NOT FOUND CONTINUE;

 

SQLERROR- это другой способ сообщить что SQLCODE < 0; а NOT FOUND - это другой способ сообщить что SQLCODE = 100. ( Некоторые реализации называют последний случай еще как - SQLWARNING.) Error_handler - это имя того места в программе в которое будет перенесено выполнение прог- раммы если произошла ошибка ( GOTO может состоять из одного или двух слов ). Такое место определяется любым способом соответствующим для главного языка, например, с помощью метки в Паскале, или имени раздела или имени параграфа в КОБОЛЕ ( в дальнейшем мы будем использовать тер- мин - метка ). Метка более удачно идентифицирует стандартную процедуру распространяемую проектировщиком для включения во все программы. CONTINUE не делает чего-то специального для значения SQLCODE. Оно также является значением по умолчанию. если вы не используете команду WHENEVER, определяющую значение SQLCODE. Однако, эти неактивные опре- деления дают вам возможность переключаться вперед и назад, выполняя и не выполняя действия, в различных точках(метках) вашей программы. Нап- ример, если ваша программа включает в себя несколько команд INSERT, использующих запросы, которые реально должны производить значения, вы могли бы напечатать специальное сообщение или сделать что-то такое, что поясняло бы, что запросы возвращаются пустыми и никакие значения не были вставлены. В этом случае, вы можете ввести следующее:

 

EXEC SQL WHENEVER NOT FOUND GOTO No_rows;

 

No_rows - это метка в некотором коде, содержащем определенное дейс- твие. С другой стороны, если вам нужно сделать выборку в программе позже, вы можете ввести следующее в этой точке, EXEC SQL WHENEVER NOT FOUND CONTINUE; что бы выполнение выборки повторялось до тех пор пока все строки не будут извлечены, что является нормальной процедурой не требующей спе- циальной обработки.

Домен продается

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Апрель 2024 (1)
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

Неизвестный автор:

"На чужой СДЛ рот не разевай, а пинок себе под зад давай и свой делай!"

Опрос

Какой антивирус Вы используете?

Kaspersky Antivirus
NOD32
Norton Antivirus
Dr.Web
Panda
Аvast!
ClamWin
Другой...