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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2010, 02:19   #1
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
По умолчанию Проверка на дублирование (Delphi+FireBird)

Здраствуйте !!
Необходимо при добавлении записи в таблицу, проверить, не существует ли такая..

Возможно ли это сделать через SQL-запрос select... ?
Я просто не понимаю, как это организовать.

Допустим на форме есть Edit, где я указываю название добавляемой записи.
В кнопке "Добавить" делаю запрос типа select ... from ... where (.....=Edit1.Text).

Как мне теперь получить результат запроса, чтобы узнать была ли найдена такая же запись в таблице ?
POPOV вне форума Ответить с цитированием
Старый 31.03.2010, 07:33   #2
999Crow999
Пользователь
 
Регистрация: 30.11.2008
Сообщений: 22
По умолчанию

Поиск рулит)

http://programmersforum.ru/showthread.php?t=88788
999Crow999 вне форума Ответить с цитированием
Старый 31.03.2010, 08:49   #3
Sparky
Участник клуба
 
Аватар для Sparky
 
Регистрация: 15.05.2009
Сообщений: 1,222
По умолчанию

самый банальный вариант приодящий в голову
Код:
IbQuery1.sql.text:="select имя-поля from t_table where имя_поля=:p";
При нажатии кнопки добавить:
Код:
IBQuery1.close;
IBQuery1.ParambyName('p').value:=Edit1.text;
IBQuery1.open;
if IBQuery1.recordcount>0 then недобавлять
else добавить
Есть еще вариант в самой БД на поле наложить ограничение unique и при добавлении значения отлавливать исключение которое будет генерить СУБД
Единственное, что ограничивает полет мысли программиста-компилятор
Sparky вне форума Ответить с цитированием
Старый 31.03.2010, 09:49   #4
POPOV
Форумчанин
 
Аватар для POPOV
 
Регистрация: 26.10.2007
Сообщений: 124
По умолчанию

Цитата:
Сообщение от 999Crow999 Посмотреть сообщение
Прошу прощения.. В поиске набирал, тока "Проверка на дублирование" и данной темы не увидел. Спасибо )



Цитата:
Сообщение от Sparky Посмотреть сообщение
if IBQuery1.recordcount
Вот про это не знал, спасибо большое

Последний раз редактировалось POPOV; 31.03.2010 в 09:54.
POPOV вне форума Ответить с цитированием
Старый 31.03.2010, 12:08   #5
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

Цитата:
Сообщение от POPOV Посмотреть сообщение
Вот про это не знал, спасибо большое
главное потом не увлекаться этим recordcount где попало
потому что таким образом фетчатся все данные датасета
не сложно догадаться что будет если сделать селект без фильтра из какой-нить большой таблички
лучше пользоваться сразу
Код:
select count(1) from ... where ...
soleil@mmc вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка на совпадение. Firebird. artemavd БД в Delphi 6 18.03.2010 16:34
Проверка даты. Firebird artemavd БД в Delphi 10 18.10.2009 20:14
Дублирование объекта Series в Delphi Jean-Esther Помощь студентам 1 16.01.2009 00:34
Firebird vs Delphi HELP! paSHIZ БД в Delphi 4 13.01.2009 12:19
Проверка на дублирование в базе данных POPOV Помощь студентам 9 04.12.2007 18:21