Перемещение по документам пакета

Назначение

Позиционирование курсора в заданное местоположение.

Синтаксис

     
FETCH < курсор > [< ориентация >] [< ключ >];

< курсор >::= имя курсорной переменной;

< ориентация >::= FIRST | NEXT;

< ключ >::=символьный англоязычный литерал в кодировке ANSI.

Описание

Имя курсорной переменной в аргументе < курсор > должно ссылаться на ранее открытый курсор BSON-пакета или курсор вложенного документа.

Аргумент < ориентация > задает порядок перемещения по документам пакета или полям документа: FIRST – переход к первому документу пакета (полю документа), NEXT – к следующему (относительно текущего) документу пакета или полю документа. Если аргумент не задан, по умолчанию применяется NEXT.

Аргумент < ключ > задает имя документа пакета или поля документа, к которому должен быть перемещен (позиционирован) курсор. Если пакет или документ содержит несколько документов (полей) с одинаковыми именами, то при наличии аргумента FIRST курсор позиционируется на самом первом документе пакета (поле документа) с указанным именем, если NEXT – то к ближайшему (от текущего) документу пакета (полю документа) с указанным именем.

Если < ключ > не указан, то позиционирование производится на следующий (от текущего) документ пакета (поле документа) независимо от его имени.

Если документ пакета (поле документа) не найден (не найдено), производится позиционирование за пределы пакета документов (после последнего документа) или за пределы полей документа.

Стандартная функция outofcursor() может применяться для работы с курсорами BSON-пакета.

Возвращаемое значение

  1. Отсутствует.

Исключения

   

CURNOTOPEN    Обращение к неоткрытому курсору.

BADPARAM         Нарушение структуры BSON-пакета.

Пример

declare
  var c1 cursor;
  var bson varbyte(4000);

  open c1 for bson(b1);
! позиционирование на первый документ с именем «Sale»
  fetch c1 ‘Sale’;
! позиционирование к следующему документу с именем «Sale»
  fetch c1 ‘Sale’;
! позиционирование к следующему документу в пакете
  fetch c1 next;
! возврат к первому документу пакета
  fetch c1 first;
…
  close c1;