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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2008, 16:39   #1
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию исключение повторения номера акта за этот год

как исключить ввод повторяющего номера акта на определенный год, и выводил подсказку на определенную дату ввода.
ГОСЕАН вне форума Ответить с цитированием
Старый 06.03.2008, 17:19   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

В БД есть такое понятие как Ключевое Поле (т.е. не повторяющееся)

Если же такого нет, можно организовать поиск даного значения по базе (т.е. по даному полю) и на основе его результатов - делать "выводы".
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...

Последний раз редактировалось Yurk@; 06.03.2008 в 17:28.
Yurk@ вне форума Ответить с цитированием
Старый 06.03.2008, 18:15   #3
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

Цитата:
как исключить ввод повторяющего номера акта на определенный год, и выводил подсказку на определенную дату ввода
unigues key, primery key к этому полю и делов то
dron-s вне форума Ответить с цитированием
Старый 06.03.2008, 23:18   #4
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от dron-s Посмотреть сообщение
unigues key, primery key к этому полю и делов то
в том то и дело, что номера из года в год повторяются. именно в определенный год небыло повторения номера акта, например:
2006 -1,2,3,4,5.....
2007 -1,2,3,4,5.....
dakta-datatime (поле дата акта)
nakt-numeric (вот здесь нумерация с 1 января по 31 декабря)
idakt-int (индексное поле)
ГОСЕАН вне форума Ответить с цитированием
Старый 06.03.2008, 23:32   #5
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

как вариант триггер на вставку повесь. вырезай год из даты и смотри, есть ли номер договора на этот год такой уже. или вставку можно через хранимую процедуру делать, в которой проверять
pu4koff вне форума Ответить с цитированием
Старый 07.03.2008, 05:41   #6
Andrei
Форумчанин
 
Регистрация: 20.06.2007
Сообщений: 270
По умолчанию

Создайте уникальный индекс по этим полям.

Или попробуйте использовать Lookup перед сохранением. Если нашел записи с этими значениями - предупреждение. Если не нашел - сохранить.
-Кукушка, кукушка! Накукуй мне сто лет!
-А накукуй тебе столько?

(с) Библия. Вольный перевод с древнееврейского.
Andrei вне форума Ответить с цитированием
Старый 08.03.2008, 03:40   #7
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
как вариант триггер на вставку повесь. вырезай год из даты и смотри, есть ли номер договора на этот год такой уже. или вставку можно через хранимую процедуру делать, в которой проверять
можно пример? с выводом соответствующего сообщения
еще забыл, на проверку организации по полю org (numeric) вторичный ключ
проверка производится по году, организации и номеру

Последний раз редактировалось ГОСЕАН; 08.03.2008 в 03:45. Причина: забыл момент
ГОСЕАН вне форума Ответить с цитированием
Старый 08.03.2008, 03:44   #8
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

еще забыл, на проверку организации по полю org (numeric) вторичный ключ
проверка производится по году, организации и номеру
ГОСЕАН вне форума Ответить с цитированием
Старый 08.03.2008, 21:56   #9
Pitbull
детский тренер
Форумчанин
 
Аватар для Pitbull
 
Регистрация: 08.06.2007
Сообщений: 532
По умолчанию

Я б делал бы тригер .... on insert
Либо создал бы поле varchar в которое б вставлял год и номер документа('2007-1')... И это поле сделал бы ключем.... Или уникальным сделал бы...
Я злой и страФный серррый воФк, и в пАрАсятах знаю толк - ppp ppp pp p pp pp
Pitbull вне форума Ответить с цитированием
Старый 09.03.2008, 02:50   #10
ГОСЕАН
Форумчанин
 
Аватар для ГОСЕАН
 
Регистрация: 03.05.2007
Сообщений: 247
По умолчанию

Цитата:
Сообщение от Pitbull Посмотреть сообщение
Я б делал бы тригер .... on insert
Либо создал бы поле varchar в которое б вставлял год и номер документа('2007-1')... И это поле сделал бы ключем.... Или уникальным сделал бы...
этот прикол не для деловых документов. Напечать, что так 2007-1? ? где вы такие документы видели А вот тригер, если моно, примерчик.
Интересно, номер акта год-индекс организации-номер, 2007-1-1, так это новый год сердючки получается
ГОСЕАН вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на исключение строк в матрице DRAG Помощь студентам 11 20.04.2011 21:31
Как обработать исключение? XPAiN БД в Delphi 9 16.05.2008 15:09
Возникает исключение при TStream.Free eks-s Работа с сетью в Delphi 16 10.03.2008 13:43
Исключение EIdReadTimeout Pedro Работа с сетью в Delphi 1 22.09.2007 22:51
Неуловимое исключение в Apro компонентах Slaveg123 Работа с сетью в Delphi 0 01.07.2007 00:28