Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.05.2009, 13:45
andruxa-forever andruxa-forever вне форума
Прохожий
 
Регистрация: 19.05.2009
Адрес: Челябинск
Сообщения: 18
Репутация: 10
По умолчанию Как наложить ограничение на ввод повторяющейся информации

У меня форме несколько edit'ов, по которым я ввожу информацию в базу....Как сделать чтобы было нельзя ввести одинаковую инфу?????хотя бы по одному полю
Ответить с цитированием
  #2  
Старый 21.05.2009, 13:48
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Можно сделать CONSTRAINT (ограничение) в базе
Ответить с цитированием
  #3  
Старый 21.05.2009, 13:53
andruxa-forever andruxa-forever вне форума
Прохожий
 
Регистрация: 19.05.2009
Адрес: Челябинск
Сообщения: 18
Репутация: 10
По умолчанию

Как это сделать???
Ответить с цитированием
  #4  
Старый 21.05.2009, 14:01
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Цитата:
Сообщение от andruxa-forever
У меня форме несколько edit'ов, по которым я ввожу информацию в базу....Как сделать чтобы было нельзя ввести одинаковую инфу?????хотя бы по одному полю
Погоди, расскажи по-понятнее.

Вот, например, на форме 2 edit. Если ты введёшь в оба одинаковую информацию, то это в базу не запишется. Так?

Если так, то тупо проверяй текст edit'ов.
Можно сделать так в процедуре добавки информации в базу. Оператор Exit означает выход из процедуры (я упомянул это т.к. о значении оператора часто забывают).
Код:
if edit1.text = Edit2.Text then Exit;
__________________
Делаем'c разные игры. Искать на glscene.ru
Ответить с цитированием
  #5  
Старый 21.05.2009, 14:08
andruxa-forever andruxa-forever вне форума
Прохожий
 
Регистрация: 19.05.2009
Адрес: Челябинск
Сообщения: 18
Репутация: 10
По умолчанию

Не, не так......Вот например я ввел в базу сотрудника и задал ему "личный номер", и мне надо так, чтобы когда я начал добавлять 2-го сотрудника нельзя ему было присвоить точно такой же "Личный номер"
Ответить с цитированием
  #6  
Старый 21.05.2009, 14:10
DungeonLords DungeonLords вне форума
Активный
 
Регистрация: 21.07.2008
Сообщения: 257
Репутация: 14
По умолчанию

Цитата:
Сообщение от andruxa-forever
Не, не так......Вот например я ввел в базу сотрудника и задал ему "личный номер", и мне надо так, чтобы когда я начал добавлять 2-го сотрудника нельзя ему было присвоить точно такой же "Личный номер"
А считать информацию с базы и сравнить её с edit.text не судьба?
__________________
Делаем'c разные игры. Искать на glscene.ru
Ответить с цитированием
  #7  
Старый 21.05.2009, 14:13
andruxa-forever andruxa-forever вне форума
Прохожий
 
Регистрация: 19.05.2009
Адрес: Челябинск
Сообщения: 18
Репутация: 10
По умолчанию

Да я ламер ваще))))Напиши код если не сложно
Ответить с цитированием
  #8  
Старый 21.05.2009, 14:36
Аватар для GLFox
GLFox GLFox вне форума
Прохожий
 
Регистрация: 11.10.2005
Сообщения: 26
Репутация: 10
По умолчанию

Уникальность записей должна контролироваться на уровне БД. Для того и придуманы всякие автоинкрементные поля или генераторы, а также первичные ключи и констрэинты... Короче, не с той стороны смотришь - изучай основы реляционных БД и СУБД.
Ответить с цитированием
  #9  
Старый 21.05.2009, 14:42
andruxa-forever andruxa-forever вне форума
Прохожий
 
Регистрация: 19.05.2009
Адрес: Челябинск
Сообщения: 18
Репутация: 10
По умолчанию

У меня есть ендексированное поле, информация в котором не может повторяться.....Когда вводишь повторяющуюся информацию, программа вылетает....Можно сделать так чтобы прога не вылетала,а просто выдавала сообщение об ошибке и позволяла дальше работать????
Ответить с цитированием
  #10  
Старый 21.05.2009, 15:33
Аватар для GLFox
GLFox GLFox вне форума
Прохожий
 
Регистрация: 11.10.2005
Сообщения: 26
Репутация: 10
По умолчанию

Цитата:
Сообщение от andruxa-forever
Можно сделать так чтобы прога не вылетала,а просто выдавала сообщение об ошибке и позволяла дальше работать????
Читать документацию по try except.
Ответить с цитированием
  #11  
Старый 21.05.2009, 18:59
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Цитата:
Сообщение от andruxa-forever
У меня есть ендексированное поле, информация в котором не может повторяться.....Когда вводишь повторяющуюся информацию, программа вылетает....Можно сделать так чтобы прога не вылетала,а просто выдавала сообщение об ошибке и позволяла дальше работать????
У вас есть два пути.
1. перед вставкой в БД чего-либо, что угрожает уникальности данных, сделайте запрос на это значение и если значение в БД найдено уведомить пользователя.
2. обрабатывать уже ошибку возникающую в результате попытки нарушить уникальности данных и тут вы опасный блок программы заключаете в блок (try ... except ... end) как уже ранее советовали.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:11.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter