Вы используете исполняемый запрос, а затем его пытаетесь открыть:
Цитата:
//обновляем набор данных
DataModule2.ADOQueryProduct.Close;
DataModule2.ADOQueryProduct.open;
|
Этих двух строк вообще не надо.
А что-бы в таблице небыло повторяющихся записей сделайте уникальный индекс и отслеживайте при добавлении ошибку повтора значения или ручками запрос делайте к таблице на наличие записи.