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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2010, 17:20   #1
belii0987
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 13
Вопрос firebird сравнение

Доброго времени суток!
В таблице есть столбец в который вводятся цифры :

ID
1
2
1
2
3

как сделать чтоб не вводилось более 2х одинаковых цифр?
Я так понимаю надо взять вводимое число и сравнить с остальными если повторяется 2 раза то обнулить.
А вот как оформить эти слова в firebird я не знаю помогите плиззз
belii0987 вне форума Ответить с цитированием
Старый 16.09.2010, 18:28   #2
Alexei91
Заблокирован
Форумчанин
 
Аватар для Alexei91
 
Регистрация: 30.12.2009
Сообщений: 544
По умолчанию

Поставьте в св-ве поля ID значение Уникальное (Unique) - ID не будет иметь
одинаковых значений.
Если так важно,чтобы не вводилось именно более 2 =-х цифр используйте
триггер на OnInsert или ХП. Дальше не помню.
Темы для WordPress. Русские WordPress шаблоны
Alexei91 вне форума Ответить с цитированием
Старый 16.09.2010, 21:25   #3
belii0987
Пользователь
 
Регистрация: 17.10.2009
Сообщений: 13
По умолчанию

надо как то с помощью selekt а вот синтаксис его непойму
пожалуйста объясните
belii0987 вне форума Ответить с цитированием
Старый 17.09.2010, 02:05   #4
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

select используется для получения набора данных из таблицы. Если Вам надо, чтобы в выборке не было повторяющихся значений - используйте в запросе select предикат distinct.
Если же Вам надо исключить ввод повторяющихся значений в какое-то из полей, то сделайте его уникальным (как говорилось выше) и тогда при попытке ввода "неправильного" значения сервер БД сгенерирует Вам исключение.
_Engine_ вне форума Ответить с цитированием
Старый 17.09.2010, 05:30   #5
Alexei91
Заблокирован
Форумчанин
 
Аватар для Alexei91
 
Регистрация: 30.12.2009
Сообщений: 544
По умолчанию

Код:
SELECT DISTINCT ID FROM <Имя Вашей таблицы>
Темы для WordPress. Русские WordPress шаблоны
Alexei91 вне форума Ответить с цитированием
Старый 17.09.2010, 13:58   #6
soleil@mmc
SQL-коддинг
Участник клуба
 
Регистрация: 16.01.2009
Сообщений: 1,192
По умолчанию

генераторы лучшие друзья праймари
даже если вам и не нужен праймари юзайте генератор
Код:
CREATE GENERATOR GEN_YOURTABLE_ID;
SET GENERATOR GEN_YOURTABLE_ID TO 0;
SET TERM !! ;
CREATE TRIGGER BI_YOURTABLE FOR YOURTABLE
  BEFORE INSERT
    POSITION 0
  AS BEGIN
    NEW.ID = GEN_ID(GEN_YOURTABLE_ID, 1);
  END
SET TERM ; !!
soleil@mmc вне форума Ответить с цитированием
Старый 17.09.2010, 14:58   #7
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Перед добавлением записи проверять как то так.
select 'Записей две'
from <имя вашей таблицы>
WHERE ID = <знаение>
HAVING COUNT(ID) = 2
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Count. Firebird artemavd БД в Delphi 21 12.09.2010 12:00
Firebird vs Delphi HELP! paSHIZ БД в Delphi 4 13.01.2009 12:19
FireBird Д'якон БД в Delphi 2 04.12.2008 11:15
FireBird 1.5.4 Nikola__ БД в Delphi 2 17.11.2008 14:42
округление в Firebird shurik_7866 БД в Delphi 0 05.07.2007 11:10