Проверять нужно (наверное) не уникальность поля, а значение какого-то
поля. И не в DBGrid, а в DataSet (скорее всего).
В зависимости от DataSet - можно или FindKey или Locate.
Код:
if Query1.Locate('ID', MyID, []) then begin
ShowMessage('Значение ID='+IntToStr(MyID)+' уже есть');
end;
Но это не оч.надежно (для Locate, во всяком случае), если таблица открыта с фильтрацией.
Надежнее завести отдельный TQuery и делать соотв.запрос, типа:
Код:
SELECT
ID
FROM
MyTable
WHERE
ID = :MyID
или
Код:
SELECT
COUNT( * )
FROM
MyTable
WHERE
ID = :MyID
И проверять результат.
А еще надежнее проверять уникальность на стороне сервера.