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 |