Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Создание курсора

3.4K
04 апреля 2006 года
mag23
35 / / 04.07.2004
Приведите пожулуйста простенький пример по созданию курсора и извлечением из него данных оператором FETCH.
324
04 апреля 2006 года
AndreySar
532 / / 01.08.2004
Цитата:
Originally posted by mag23
Приведите пожулуйста простенький пример по созданию курсора и извлечением из него данных оператором FETCH.



Оператор описания курсора:

 
Код:
DECLARE Debtor_reader_cursor INSENSITIVE CURSOR
FOR
SELECT READERS.FIRST_NAME, READERS.LAST_NAME, READERS.ADRES,
    READERS.HOME_PHON, READERS_WORK_PHON, BOOKS.TITLE
FROM READERS, BOOKS, EXEMPLAR
WHERE READERS.READER_ID = EXEMPLAR.READER_ID AND
BOOKS.ISBN = EXEMPLARE.ISBN AND
EXEMPLAR.DATA_OUT > Getdate()
ORDER BY READERS.FIRST_NAME
FOR READ ONLY

Оператор извлечения очередной строки из курсора:
 
Код:
FETCH Debtor_reader_cursor into @FIRST_NAME,
@LAST_NAME, @ADRES, @HOME_PHON, @WORK_PHON, @TITLE


Взято из книги Базы данных Т. Карпова стр. 255
385
05 апреля 2006 года
SomewherSomehow
477 / / 25.07.2004
Вот накидал пример курсора на MS SQL
Код:
-- Переменная курсора в которую записываем текущие -- значения
declare @NodeID int

-- объявляем курсор, если данные курсора не изменяются для быстродействия укажем опции "local read_only forward_olnly static"
delare Cur cursor local read_only forward_olnly static for
select NodeID from Nodes where ParentID = @ParentID
-- открываем курсор
open Cur
--организуем цикл по записям курсора
fetch next from Cur into @NodeID
while @@fetch_status = 0 begin
  -- результаты вычислений в теле цикла вставляем в гипотетическую таблицу Res
  insert into Res(NodeID)
  values (@NodeID)
  fetch next from Cur into @NodeID
end
-- закрываем курсор
close Cur
-- удаляем из памяти
deallocate Cur
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог