Показать сообщение отдельно
  #2  
Старый 20.11.2010, 01:40
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Проверять нужно (наверное) не уникальность поля, а значение какого-то
поля. И не в 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

И проверять результат.

А еще надежнее проверять уникальность на стороне сервера.
Ответить с цитированием