powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Наивный вопрос по циклам FOR в Watcom-SQL
3 сообщений из 3, страница 1 из 1
Наивный вопрос по циклам FOR в Watcom-SQL
    #34066052
Фотография A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASA 8.0.3. Документация описывает синтаксис цикла FOR для перебора всех строк курсора следующим образом:
Код: plaintext
1.
2.
3.
4.
5.
[ statement-label : ]
FOR for-loop-name AS cursor-name
  CURSOR FOR statement
  [ FOR UPDATE | FOR READ ONLY ]
    DO statement-list
END FOR [ statement-label ]

Возник наивный вопрос, на который в доке ответа не нашел: а для чего вообще можно использовать for-loop-name и cursor-name, определяемые в данной конструкции языка, или это так, для красоты?
...
Рейтинг: 0 / 0
Наивный вопрос по циклам FOR в Watcom-SQL
    #34066127
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
for-loop-name необходим, если мы хотим внутри цикла использовать оператор LEAVE, который позволяет покинуть именованный блок. cursor-name необходим, если мы сами хотим поиграться движением по курсору - к примеру тем же оператором FETCH. В общем стоит помнить, что на самом деле такая конструкция FOR будет эквивалентна обьявлению именнованного блока, обьявлению внутри него через DECLARE переменных, соответствующих возвращаемым полям курсора, обьявления курсора, его открытию, организации движению по нему через FETCH с проверкой достижения конца и далее закрытия курсора. В этом плане FOR нам экономит очень много кода, хотя в принципе делает тоже самое и как раз не ограничивает функциональность, давая возможность управления циклом и курсором через именованные переменные.

--
www.rusug.ru - портал русскоязычной группы пользователей Sybase
...
Рейтинг: 0 / 0
Наивный вопрос по циклам FOR в Watcom-SQL
    #34066298
Фотография A.K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSfor-loop-name необходим, если мы хотим внутри цикла использовать оператор LEAVE, который позволяет покинуть именованный блок. cursor-name необходим, если мы сами хотим поиграться движением по курсору - к примеру тем же оператором FETCH.

Спасибо большое за разъяснения.
Хотя IMHO по аналогии с другими циклами Watcom'а было бы логичным использовать для выхода LEAVE statement-label , или же наоборот заканчивать тело цикла оператором END FOR [ for-loop-name ]. Одновременное присутствие statement-label и for-loop-name кажется некоторой избыточностью языка.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Наивный вопрос по циклам FOR в Watcom-SQL
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]