|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Проверка повторяющихся данных
Здравствуйте!!!Возникла проблема, которую не могу решить.Есть таблица товары, при добавлении нового вводится его код(PK) вручную.Вопрос в том как при добавлении сделать проверку на наличие уже имеющихся кодов товаров из грида и выдавать ошибку что такие данные уже существуют??В делфи7 буквально неделю.
|
#2
|
|||
|
|||
Поставить уникальный констрейнт на нужное поле - пусть база сама все проверяет. Если очень уж хочется сделать все руками, то можно вычитать все коды в список TStringList, потом перед вставкой просто делать IndexOf. Только не забудь после успешной всатвки довабить в список введенный код.
|
#3
|
|||
|
|||
констрейнт
про констрейнт можете подробнее рассказать?
|
#4
|
||||
|
||||
Пишу программы за еду. __________________ |
#5
|
||||
|
||||
Составной первичный ключ здесь нужен.
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#6
|
|||
|
|||
Цитата:
Зачем? Я, вообще-то, имел в виду UNIQUE на конкретное поле, что обеспечит гарантированную уникальность (особенно в купе c NOT NULL, что еще и обязательность обеспечит) значения в конкретном поле. При этом первичный ключ (да, я знаю, что UNIQUE являестя частью PRIMARY KEY), может быть любой другой (INTEGER, по которому JOIN'ы делать гораздо эффективнее, чем по текстовому полю). |
#7
|
||||
|
||||
Цитата:
Цитата:
jmp $ ; Happy End! The Cake Is A Lie. |
#8
|
||||
|
||||
Цитата:
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#9
|
||||
|
||||
Для базы акцесса можно и такое делать, в данном случае с текстовыми полями, текст вводится в отдельный едит
Код:
... if Length(Edit1.Text) = 0 then exit; tbl.Locate('поле', Edit1.Text, [loPartialKey]); if Edit1.Text = dbgrid1.Fields[0].Text then // есть такое слово else // его нет в базе ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |