Здравствуйте.
Если в запросе используется ключевое слово "IGNORE", то ошибки возникающие во время вставки будут игнорироваться (
подробнее см. по ссылке). В этом случае, вместо ошибки MySQL сервер будет генерировать предупреждение. Поэтому в скаду ошибка не приходит.
Если использовать инструкцию "INSERT" без "IGNORE", то MySQL сервер вернёт ошибку и ее можно будет обработать в скрипте по событию "
Ошибка SQL запроса". Например, если колонка имени уникальна, то при попытке вставки строки с существующим именем MySQL сервер вернёт ошибку, в которой будет одержаться слово "UNIQUE". Можно выполнить поиск по тексту ошибки и выдать предупреждение:
begin
if Pos('UNIQUE', Msg) <> 0 then // если ошибка содержит слово "UNIQUE", то выдать предупреждение
ShowMessageAll('Ошибка!', 'Введенное имя уже существует.' );
end.