Использование обработчика OnUpdateError
К наиболее часто встречающимся ошибкам, происходящим при попытках подтверждения кэшированных изменений, относятся:
• нарушение значения поля связи в родительской или дочерней таблицах;
• нарушение уникальности индекса, построенного по первичному или уникальному ключу таблицы БД;
• попытка ввести в поле связи дочерней таблицы значение, отсутствующее в поле связи родительской таблицы;
• нарушение требования ввода в одно из полей обязательного значения;
• нарушение ограничений, накладываемых на значение поля.
Реагировать на ошибки, возникающие при подтверждении кэшированных изменений, можно в обработчике события OnUpdateError:
procedure TForm1.TovaryUpdateError(DataSet: TDataSet;
E: DatabaseError; UpdateKind: TUpdateKind;
var UpdateAction: TUpdateAction);
begin
...
end;
где параметры имеют следующее назначение:
- DataSet: TDataSet -
набор данных, для которого при попытке подтверждения кэшированных изменений произошла ошибка;
- UpdateKind: TUpdateKind -
вид изменений, при попытке подтверждения которых произошла ошибка. Возможные значения:
- ukModify -
запись была изменена (скорректировано значение хотя бы одного поля);
- uklnsert -
запись была добавлена;
- ukDelete -
запись была удалена.
- var UpdateAction: TUpdateAction -
изменяемый параметр. Указывает, что нужно делать с записью, при попытке подтверждения кэшированных изменений которой произошла ошибка. Список возможных значений приводится ниже в подразделе "Использование изменяемого параметра UpdateAction".
- E: DatabaseError -
указатель на исключительную ситуацию, возбужденную в результате невозможности подтвердить кэшированные изменений для данной записи. Может использоваться для получения сообщения об ошибке или кода ошибки. Использование данного параметра описано ниже в подразделе "Использование параметра E".
Содержание Назад Вперед