Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Пример использования курсоров

01.01.2007

Вот пример использования курсора для прохода по каждой записи взапросе и операции с этой записью:

Declare  @MyVar int
Declare c cursor for
Select MyField From MyTable Where MyField2=1
/*
  c - переменная курсора
  Select ... выражение к каждой записи которого посредством курсора можно достучаться
*/

Open c --открываем курсор, с этой строкой будет выполнен приведенный выше Select
 
Fetch Next From c Into @MyVar -- вытаскиваем первую запись и присваиваем значение MyField в переменную @MyVar
 
While @@Fetch_Status = 0 -- проверяем не последняя ли это запись, а точнее - смогли ли мы возвратить запись
  Begin
    Print @MyVar -- что-то делаем с полученными данными
    Fetch Next From c Into @MyVar -- вытаскиваем следующую запись и присваиваем значение MyField в переменную @MyVar
  End
 
Close c -- закрывам курсор, закрываем запрос, ОПЕРАТОР ОБЯЗАТЕЛЕН!
Deallocate c -- уничтожаем переменную, ОПЕРАТОР ОБЯЗАТЕЛЕН! 

Если курсор не должен "отслеживать" изменения в таблице по ходу своей работы и не должен менять значение таблицы желательно добавление опций предотвращающих блокирование объектов на время работы курсора:

Declare c cursor
Local Fofward_Only Static Read_Only
for
Select MyField From MyTable Where MyField2=1

Автор: Vit