Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Наивный вопрос по циклам FOR в Watcom-SQL / 3 сообщений из 3, страница 1 из 1
19.10.2006, 12:05
    #34066052
A.K.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наивный вопрос по циклам FOR в Watcom-SQL
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
19.10.2006, 12:21
    #34066127
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Наивный вопрос по циклам FOR в Watcom-SQL
for-loop-name необходим, если мы хотим внутри цикла использовать оператор LEAVE, который позволяет покинуть именованный блок. cursor-name необходим, если мы сами хотим поиграться движением по курсору - к примеру тем же оператором FETCH. В общем стоит помнить, что на самом деле такая конструкция FOR будет эквивалентна обьявлению именнованного блока, обьявлению внутри него через DECLARE переменных, соответствующих возвращаемым полям курсора, обьявления курсора, его открытию, организации движению по нему через FETCH с проверкой достижения конца и далее закрытия курсора. В этом плане FOR нам экономит очень много кода, хотя в принципе делает тоже самое и как раз не ограничивает функциональность, давая возможность управления циклом и курсором через именованные переменные.

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

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


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