Ошибка после вставки (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