4.6.1. Назначение
Оператор REWRITE (ОБНОВИТЬ) логически заменяет запись в файле на устройстве массовой памяти.
4.6.2. Общий формат
4.6.3. Синтаксические правила
(1) Имя-записи-1 и идентификатор-1 не должны относиться к одной и той же области памяти.
(2) Имя-записи-1 - это имя логической записи в секции файлов раздела данных. Оно может быть уточнено.
(3) Фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) и NOT INVALID KEY (БЕЗ ОШИБКИ КЛЮЧА) не должна указываться в операторе REWRITE (ОБНОВИТЬ) для файлов с последовательным доступом.
(4) Фраза INVALID KEY (ПРИ ОШИБКЕ КЛЮЧА) должна быть указана в операторе REWRITE (ОБНОВИТЬ) для файлов с произвольным доступом, для которых не определена соответствующая процедура USE AFTER EXCEPTION (ИСПОЛЬЗОВАТЬ ПОСЛЕ СТАНДАРТНОЙ ПРОЦЕДУРЫ ОШИБКИ).
4.6.4. Общие правила
(1) Во время выполнения этого оператора файл, связанный с именем-записи-1, должен быть файлом массовой памяти и должен быть открыт как входной-выходной (см. ч.7, п.4.3).
(2) Для файлов с последовательным доступом последним оператором ввода-вывода для соответствующего файла перед выполнением оператора REWRITE (ОБНОВИТЬ) должен быть успешно выполненный оператор READ (ЧИТАТЬ). СУМП логически заменяет запись, которая была извлечена оператором READ (ЧИТАТЬ).
(5) Выполнение оператора REWRITE (ОБНОВИТЬ) с фразой FROM (ИЗ ПОЛЯ) эквивалентно выполнению следующих операторов в указанном порядке:
а) оператор
MOVE идентификатор-1 INTO имя-записи-1
ПОМЕСТИТЬ идентификатор-1 В имя-записи-1
соответственно правилам, описанным для оператора MOVE (ПОМЕСТИТЬ);
б) тот же оператор REWRITE (ОБНОВИТЬ) без фразы FROM (ИЗ ПОЛЯ).
(7) Выполнение оператора REWRITE (ОБНОВИТЬ) не влияет на указатель позиции файла.
(8) Выполнение оператора REWRITE (ОБНОВИТЬ) вызывает обновление состояния ввода-вывода для файла, связанного с именем-записи-1 (см. п.1.3.4 настоящей части).
(9) При выполнении оператора REWRITE (ОБНОВИТЬ) логическая запись передается операционной системе.