RESTORE_CURSORS


Синтаксис

CONST
 RC_OFF   = 0;
 RC_ON    = 1;

Описание

Набор именованных констант для управления режимом восстановления позиций предопределенных курсоров при успешном выходе из TRY-блока, т.е. при фиксации уровня транзакции. Управляет этим режимом атрибут RESTORE_CURSORS TRY-блока:

При выходе из TRY-блока по исключению курсоры всегда имеют те же позиции, что и непосредственно перед входом в TRY-блок.

Пример (схематично):

FIRST(File1); (* спозиционировались на 110 *)
FIRST(File2); (* спозиционировались на 210 *)
FIRST(File3); (* спозиционировались на 310 *)
FIRST(File4); (* спозиционировались на 410 *)
TRY[RESTORE_CURSORS( ? )]
 LAST(File1); (* спозиционировались на 190 *)
 REPLACE(File2); (* изменили значение с 210 на 220 *)
 REMOVE(File3); (* удалили запись 310, текущая 320 *)
 IF (* нужно исключение *) THEN
  RAISE(N);
 END;
EXCEPT
END;
  1. Если атрибут RESTORE_CURSORS имел значение RC_OFF (оно же по умолчанию), при успешном выходе из TRY: File1 имеет позицию 190; File2 - 220; File3 - 320; File4 - 410.
  2. Если атрибут RESTORE_CURSORS имел значение RC_ON, при успешном выходе из TRY: File1 имеет позицию 110; File2 - 220; File3 - нет позиции, т.к. запись 310 удалена; File4 - 410.
  3. При  выходе из TRY по исключению: File1 имеет позицию 110; File2 - 210; File3 - 310; File4 - 410.