Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.08.2012, 17:50   #1
Servin
 
Аватар для Servin
 
Регистрация: 28.04.2010
Сообщений: 6
По умолчанию Запрет ввода уникальной записи.

Ребята помогите мне сделать так чтобы пользователь не смог добавить ещё одну уникальную запись в базу сделанную в Accesse. В базе Accesse я сделал нужный столбец уникальным но при добавление одинаковой уникальной записи через Delphi выскакивает ошибка что запись уникальна но при это добавляться в DBGrid т.е. в базу. Как мне это предотвратить и выдавать сообщение что такая запись есть. Использую компоненты ADOConnection1, ADOQuery1, DataSource1, DBGrid1, BitBtn1 и т.д. Поля: уникальное числовое поле - Табельный_номер,текстовое поле - Фио, числовое поле - Лет.
Servin вне форума Ответить с цитированием
Старый 07.08.2012, 17:55   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Перед добавлением сделайте SELECT на предмет наличия записи,
Либо другой вариант более правильный, но более сложный - использование транзакций. В случае ошибки откатывать полностью транзакцию и запись добавлятся не будет. А пользователю сообщать что запись уже есть.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 07.08.2012, 18:00   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
выскакивает ошибка что запись уникальна но при это добавляться в DBGrid т.е. в базу.
Так всетки в базу или в грид?
Если в базу то значит неверно создал уникальность.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.08.2012, 18:09   #4
Servin
 
Аватар для Servin
 
Регистрация: 28.04.2010
Сообщений: 6
По умолчанию

А есть какой нибудь простой пример для наглядности?
Servin вне форума Ответить с цитированием
Старый 07.08.2012, 18:11   #5
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Servin Посмотреть сообщение
А есть какой нибудь простой пример для наглядности?
пример чего?? селекта???

SELECT * FROM MyTable WHERE ColumnName = "MyVal";

Если вернется больше чем 0 значит запись уже есть.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 07.08.2012, 18:17   #6
Servin
 
Аватар для Servin
 
Регистрация: 28.04.2010
Сообщений: 6
По умолчанию

WorldMaster спасибо тебе большое но один вопрос а что означает - MyVal?
Servin вне форума Ответить с цитированием
Старый 07.08.2012, 18:19   #7
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Значение которое тебе нужно найти в столбце ColumnName
Сюда свои данные подставляй.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запрет ввода в Edit Matrix6993 Мультимедиа в Delphi 17 12.10.2013 12:04
Запрет ввода букв Евгений Уральский Microsoft Office Excel 19 19.09.2012 12:06
Запрет нажатия кнопки и запрет неправильного ввода данных De_Kurlzz Помощь студентам 1 15.06.2011 15:14
Запрет ввода с клавиатуры DoGFoX Помощь студентам 5 16.06.2010 23:40
Как сделать запрет ввода букв в поле для ввода input zvezda_t PHP 1 27.12.2009 22:02