REPLACE


Библиотека

V32.EXE

Синтаксис

REPLACE(file: IDENT);

Описание

Процедура выполняет модификацию текущей записи файла file, а при включенном контроле ссылочной целостности БД - еще и согласующую модификацию в связанных записях BORROW- и USER- файлов. Предполагается, что предварительно было выполнено позиционирование и текущая позиция в файле определена, после чего были изменены значения некоторых полей текущей записи.

REPLACE обладает всеми особенностями процедур модификации текущей записи.

Если перед вызовом REPLACE последнее поле field автоинкрементного индекса заполнить пустым значением, а все другие поля этого индекса заполнить непустыми значениями, то в результате выполнения REPLACE поле field получит значение, на 1 большее самого большого значения field среди всех записей файла file, имеющих такие же, как и у вставляемой записи, значения всех, кроме последнего, полей автоинкрементного индекса на момент выполнения замены (аналогично INSERT).

После успешной модификации курсор файла file будет ссылаться на ту же физическую запись; состояние курсора описано ниже.

Следующий после REPLACE вызов функции OCCURE для файла file, возвращает 1.

Исключительные ситуации

Файл file не существует Исключение 16
Не определена текущая позиция в файле file (состояние ~OCCURE) Исключение 36
Текущая запись файла file не доступна (состояние ~ALLOWED) Исключение 70
Попытка нарушения уникальности в одном из уникальных индексов файла file Исключение 229
Последнее поле автоинкрементного индекса файла file имеет пустое значение, но и еще одно поле этого индекса имеет пустое значение Исключение 365
Переполнение при вычислении значения поля автоинкрементного индекса файла file Исключение 366
Попытка выполнения операции модификации для подключаемого файла, открытого на чтение Исключение 941
Пользователь не имеет прав модификации (Replace) на файл file или (при включенном контроле целостности) на один из транзитивно связанных BORROW- и USER- файлов, имеющих записи, связанные с модифицируемой записью файла file Исключение 352
Исходное значение записи файла file не удовлетворяет файловому фильтру (см. TABLE.Filter) Исключение 396
Новое значение записи файла file не удовлетворяет файловому фильтру (см. TABLE.Filter) Исключение 397
Выполнение процедуры, когда файла file находится в конкурентном режиме, и модифицируемая запись не заблокирована ни разделяемо, ни монопольно (подробнее см. конкурентные операции модификации) Исключение 960
Только при включенном контроле целостности: исходная запись ссылается на справочную запись, не удовлетворяющую файловому фильтру (см. TABLE.Filter) Исключение 218
Только при включенном контроле целостности: новый экземпляр записи ссылается на справочную запись, не удовлетворяющую файловому фильтру (см. TABLE.Filter) Исключение 217
Только при включенном контроле целостности: исходная запись ссылается на несуществующую справочную запись Исключение 219
Только при включенном контроле целостности: новое значение записи файла file нарушает ссылочную целостность, так как поля связи со справочником имеют такие значения, что в справочном файле нет соответствующей записи Исключение 220
Только при включенном контроле целостности: на один из транзитивных BORROW- и USER- файлов, имеющих записи, связанные с модифицируемой записью файла file, пользователь не имеет прав чтения (Scan) Исключение 224
Только при включенном контроле целостности: попытка изменить непустое значение на пустое для поля, входящего в связь с USER- и BORROW-файлами на основе неавтоинкрементного индекса Исключение 394

См. также