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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2009, 08:45   #1
Subscriber
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 12
По умолчанию Фильтр по дню и месяцу (поиск ежегодных событий)

Здравствуйте.
Пробую сделать небольшую бд "Дни рождения сотрудников" Подскажите пожалуйста как можно задать фильтр для поиска по полю типа date для выбора ежегодных событий. Прошелся по поисковикам-такое ощущение что никто не сталкивался с такой проблемой (или эта задача настолько проста))) ).
Пробовал таким образом, но в результате выходят данные только за текущий год:
procedure TBDgl_f.N18Click(Sender: TObject);
var f : string;
begin
F:= FormatDateTime('dd.mm', now);
BDgl_f.Caption:='Дни рождения - Сегодня';
dm.bdTab.Filtered:=false;
dm.bdTab.Filter:='BD='''+f+'''';
dm.bdTab.Filtered:=true;
end;
Subscriber вне форума Ответить с цитированием
Старый 07.09.2009, 09:47   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А СУБД какая? тип BD Какой?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.09.2009, 09:51   #3
Subscriber
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 12
По умолчанию

на firebird сервер делаю, использую компоненты interbase
Subscriber вне форума Ответить с цитированием
Старый 08.09.2009, 12:43   #4
Subscriber
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 12
По умолчанию

подскажите кто-нибудь! вопрос остается не решенным
Subscriber вне форума Ответить с цитированием
Старый 08.09.2009, 13:23   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в запросе получайте отдельно день и отдельно - месяц.
если не ошибаюсь, это будет что-то вроде:
Код:
SELECT DT.*,
  extract(month from DT.BD) as mes,
  extract(DAY from DT.BD) as den
FROM ВашаТаблица DT
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.09.2009, 13:27   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

К сожалению я не знаю как работать с FireBird. Но на твоем месте бы попробовал просто выполнить запрос где учавствует дата дабы понять как в запросе работать с датами.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.09.2009, 14:59   #7
Subscriber
Пользователь
 
Регистрация: 04.03.2009
Сообщений: 12
По умолчанию

Дело в том что SQL запрос я сделал уже, вот он:
select count(BDTABL.id_bd)
from BDTABL WHERE (EXTRACT(day FROM BDTABL.bd)=extract(DAY from cast('''+daTETOSTR(NOW)+''' as date)) AND
EXTRACT(MONTH FROM BDTABL.bd)=extract(MONTH from cast('''+daTETOSTR(NOW)+''' as date)))
, мне нужен не запрос, а именно фильтр на компонент Table

(в данном запросе у меня подсчет количества дней рождений сегодня)

Последний раз редактировалось Subscriber; 08.09.2009 в 15:03. Причина: уточнение
Subscriber вне форума Ответить с цитированием
Старый 08.09.2009, 15:31   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Subscriber, ещё раз. ВНИМАТЕЛЬНО.
через TABLE и обычную фильтрацию (через строку фильтра) Вы, имхо, эту задачу НЕ РЕШИТЕ!
способов решения я вижу ДВА.
первый - оставить таблицу как есть, но написать обработчик на OnFilteredRecord (пиши по памяти, может в паре букв и ошибся) и там обрабатывать дату средствами кода на дельфи (вытаскивать дату и месяц и сравнивать с датой и месяцем текущим. нужна будет помощь в реализации данного подхода - пишите)

и второй, который я ВАм предложил выше.
Заменяйте TABLE на QUERY. в запросе дополнительно к имеющимся полям вытаскивайте отдельно поле месяца и отдельно поле день.
в WHERE ничего писать НЕ НАДО! Тогда вы получите, как и при использовании TTABLE все записи из таблицы.
И вот тогда сможете написать простой фильтр к query (примерно такой, о котором Вы писали в сообщении #1)
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C#: Поиск и фильтр по гриду Veiron Общие вопросы .NET 5 08.07.2010 09:48
Матрицы. Срочно к завтрашнему дню надо прогу написать Scarykid Паскаль, Turbo Pascal, PascalABC.NET 0 03.06.2009 11:32
решить нужно к завтрашнему дню) KaZaaM Помощь студентам 9 26.12.2008 20:48
Фильтрация по месяцу DBgrid .... khaz БД в Delphi 5 28.04.2007 14:03
Фильтр и поиск emfw БД в Delphi 1 11.03.2007 11:01