powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как правильно завершить обработку курсора досрочно
5 сообщений из 5, страница 1 из 1
Как правильно завершить обработку курсора досрочно
    #40027650
Игорь_UUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос.

Вопрос: обрабатываю курсор, в какой то момент нахожу нужное значение, и дальнейшая обработка курсора неактуальна. Как выйти из обработки курсора досрочно?

Можно использовать BREAK?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  OPEN ServiceTools_Cursor
  FETCH NEXT FROM ServiceTools_Cursor INTO @Key, @ServiceTools
  WHILE @@FETCH_STATUS = 0 
  BEGIN
    ...    
	IF @ServiceToolMsg IS NULL
	BEGIN
	  SET @OptionKey = @Key
	  -- Покидаем обработку курсора.
	  BREAK
	END

    FETCH NEXT FROM ServiceTools_Cursor INTO @Key, @ServiceTools
  END



Или правильней так, через CLOSE:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  OPEN ServiceTools_Cursor
  FETCH NEXT FROM ServiceTools_Cursor INTO @Key, @ServiceTools
  WHILE @@FETCH_STATUS = 0 
  BEGIN
    ...    
	IF @ServiceToolMsg IS NULL
	BEGIN
	  SET @OptionKey = @Key
	  -- Покидаем обработку курсора.
	  CLOSE ServiceTools_Cursor 
	END

    FETCH NEXT FROM ServiceTools_Cursor INTO @Key, @ServiceTools
  END
...
Рейтинг: 0 / 0
Как правильно завершить обработку курсора досрочно
    #40027652
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUS,

Внутри курсора - break. Потом, по выходу - close и deallocate.
...
Рейтинг: 0 / 0
Как правильно завершить обработку курсора досрочно
    #40027663
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При чём тут курсор? Вопрос-то про цикл WHILE.
...
Рейтинг: 0 / 0
Как правильно завершить обработку курсора досрочно
    #40027670
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap,

Не совсем. Во втором примере делается close, а потом без выхода из цикла - fetch next

Похоже, ТС не в курсе, что закрытие курсора ничего не делает с циклом по нему.
...
Рейтинг: 0 / 0
Как правильно завершить обработку курсора досрочно
    #40027690
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь_UUS,

курсор можно специально не закрывать, если он объявлен локальным.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как правильно завершить обработку курсора досрочно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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