Ошибка после вставки (post) дублирующей записи в бд через TZQuery

Для работы с базой данных MySQL я использую следующую цепочку: TZConnection -> TZQuery -> TDataSetDriverEh -> TMemTableEh.

Есть таблица типов. В таблице есть следующие поля: id_type, type. Поле id_type является первичным ключом, поле type уникально (UNIQUE).

При вставке дублирующей записи в набор данных MemTableEh1.Append и последующей записи в базу данных MemTableEh1.Post возникает ошибка: Exception class EZSQLException with message 'SQL Error: Duplicate entry 'Informational' for key 'types.type_UNIQUE''.

Затем вызывается MemTableEh1.Cancel.

После этого, когда я открываю набор данных для редактирования MemTableEh1.Edit и пытаюсь сохранить изменения в базе данных MemTableEh1.Post, выдается та же ошибка: Exception class EZSQLException with message 'SQL Error: Duplicate entry 'Informational' for key 'types.type_UNIQUE''.

Почему не работает метод Cancel? Что я делаю неправильно?

  • MySQL 8.0.23
  • ZeosAccess 7.2.8-релиз
  • EhLib 9.0 Сборка 9.0.040

Ответы (0 шт):