Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
3 / 3 / 0
Регистрация: 30.05.2009
Сообщений: 46
1

Проверки в БД

18.01.2011, 19:33. Показов 1607. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть бд, в этой бд есть таблица которая выводится в DBGrid, как сделать проверку на уникальность например поля ФИО в этой таблице? Надо чтобы выдавалась ошибка типо "человек с таким ФИО уже существует".
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.01.2011, 19:33
Ответы с готовыми решениями:

Какие проверки (кроме проверки неравенства делителя нулю) нужно выполнять перед делением
Добрый вечер. Подскажите, какие проверки (кроме проверки неравенства делителя нулю) нужно выполнять...

Создать скрипты для обновления системы, проверки её на вирусы, дефрагментации диска и проверки его на ошибки
Требуется создать батники, которые бы осуществляли запуск 1)обновления системы 2)проверку на...

Написать пакетный файл для запуска утилиты проверки диска и вывода в файл статистики проверки
Написать пакетный файл для запуска утилиты проверки диска и вывода в файл статистики проверки

проверки
можно как нибудь все эти проверки сделать через одну функцию или процедуру? помогите пожалуйста ...

8
31 / 31 / 11
Регистрация: 30.06.2009
Сообщений: 148
18.01.2011, 20:08 2
Цитата Сообщение от advokat Посмотреть сообщение
Есть бд, в этой бд есть таблица которая выводится в DBGrid, как сделать проверку на уникальность например поля ФИО в этой таблице? Надо чтобы выдавалась ошибка типо "человек с таким ФИО уже существует".
пусть таблица - table, поле F_FAM, тогда кидай на форму кверик и в sql пиши -
Delphi
1
2
3
sql:='select count(*) as cnt from table where F_FAM like "%'+<проверяемая фамилия>+'%"';
cnt:=query.FieldByName('cnt').AsInteger;
if cnt=1 then ShowMessage('человек с таким ФИО уже существует');
0
3 / 3 / 0
Регистрация: 30.05.2009
Сообщений: 46
18.01.2011, 20:22  [ТС] 3
Не ты походу меня не понял) в таблице уже есть фамилии, надо чтобы при добавление в таблиу новой записи ФИО не повторялось, например есть в таблице Иванов, если еще раз ввести Иванов и попытаться добавить эту запись, то тогда была бы ошибка.
0
31 / 31 / 11
Регистрация: 30.06.2009
Сообщений: 148
18.01.2011, 20:24 4
Цитата Сообщение от advokat Посмотреть сообщение
Не ты походу меня не понял) в таблице уже есть фамилии, надо чтобы при добавление в таблиу новой записи ФИО не повторялось, например есть в таблице Иванов, если еще раз ввести Иванов и попытаться добавить эту запись, то тогда была бы ошибка.
Походу я тебя понял как раз-таки правильно...
Как раз запрос и выдаст ошибку, если фамилия Иванов уже будет в таблице...
0
3 / 3 / 0
Регистрация: 30.05.2009
Сообщений: 46
18.01.2011, 20:46  [ТС] 5
Короче, у меня на форме есть таблица которая связана с DBGrid, в гриде выводятся все поля этой таблице, там есть например поле ФИО, в этом поле уже имеется некоторые Фамилии, например Иванов, Сидоров и т.д. ФИО я добавляю через edit, если в edit ввести ФИО "Иванов" и добавить эту запись то должна появиться ошибка, потому что Иванов уже есть.
0
1 / 1 / 0
Регистрация: 15.01.2011
Сообщений: 13
18.01.2011, 20:52 6
Цитата Сообщение от advokat Посмотреть сообщение
Короче, у меня на форме есть таблица которая связана с DBGrid
Таблица, наверное, не на форме, а в базе данных?
Сделайте уникальный ключ по полю ФИО.
0
31 / 31 / 11
Регистрация: 30.06.2009
Сообщений: 148
18.01.2011, 20:56 7
Цитата Сообщение от NatalyaS Посмотреть сообщение
Таблица, наверное, не на форме, а в базе данных?
Сделайте уникальный ключ по полю ФИО.
Я так понимаю, что под таблицей подразумевается ADOTable.
Тогда необходимо сделать корректную обработку исключительной ситуации, чтобы пользователя не пугать.

advokat, на onChange у Edit'a ставь проверку.
Добавь на форму ADOQuery, в текст запроса пропиши мою sql'ьку.
Теперь при вводе ФИО ADOQuery будет просматривать на их наличие в таблице.
Есть он встретит такую комбинацию - выдаст предупреждение, что такие ФИО уже есть!

Не могу понять, какой момент у тебя вызывает трудность.
1
3 / 3 / 0
Регистрация: 30.05.2009
Сообщений: 46
18.01.2011, 23:30  [ТС] 8
я просто не очень понимаю sql)) Сорри если что то не так)

Добавлено через 18 минут
Нет, под таблицей понимается не ADOtable, а table(DBtables)

Добавлено через 46 минут
Мне нужна простая проверка, но при этом работающая и не через sql, чисто вот эту проверку осталось сделать и я сдам)
0
31 / 31 / 11
Регистрация: 30.06.2009
Сообщений: 148
18.01.2011, 23:43 9
Цитата Сообщение от advokat Посмотреть сообщение
я просто не очень понимаю sql)) Сорри если что то не так)

Добавлено через 18 минут
Нет, под таблицей понимается не ADOtable, а table(DBtables)

Добавлено через 46 минут
Мне нужна простая проверка, но при этом работающая и не через sql, чисто вот эту проверку осталось сделать и я сдам)
тогда вешай первичный индекс, поддержу NatalyaS, на поле с ФИО и через TRY EXCEPT смотри - если падает ошибка выводи корректное сообщение, что такие ФИО уже существуют.
0
18.01.2011, 23:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2011, 23:43
Помогаю со студенческими работами здесь

проверки
Это с моей проверки компа.

проверки с++
Здравствуйте,помогите пожалуйста сделать проверки на пустые строки ,чтобы когда пользователь вводит...

Условие проверки (if)
В моем фрагменте кода есть следующие условия: if (card1.dostoinstvo &gt; card2.dostoinstvo &amp;&amp;...

Избавиться от проверки
$files = scandir(ROOT_DIR.$dir); // Берём всё содержимое директории for ($i = 0;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru