|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
07.09.2009, 08:45 | #1 |
Пользователь
Регистрация: 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; |
07.09.2009, 09:47 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А СУБД какая? тип BD Какой?
I'm learning to live...
|
07.09.2009, 09:51 | #3 |
Пользователь
Регистрация: 04.03.2009
Сообщений: 12
|
на firebird сервер делаю, использую компоненты interbase
|
08.09.2009, 12:43 | #4 |
Пользователь
Регистрация: 04.03.2009
Сообщений: 12
|
подскажите кто-нибудь! вопрос остается не решенным
|
08.09.2009, 13:23 | #5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
в запросе получайте отдельно день и отдельно - месяц.
если не ошибаюсь, это будет что-то вроде: Код:
|
08.09.2009, 13:27 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
К сожалению я не знаю как работать с FireBird. Но на твоем месте бы попробовал просто выполнить запрос где учавствует дата дабы понять как в запросе работать с датами.
I'm learning to live...
|
08.09.2009, 14:59 | #7 |
Пользователь
Регистрация: 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. Причина: уточнение |
08.09.2009, 15:31 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Subscriber, ещё раз. ВНИМАТЕЛЬНО.
через TABLE и обычную фильтрацию (через строку фильтра) Вы, имхо, эту задачу НЕ РЕШИТЕ! способов решения я вижу ДВА. первый - оставить таблицу как есть, но написать обработчик на OnFilteredRecord (пиши по памяти, может в паре букв и ошибся) и там обрабатывать дату средствами кода на дельфи (вытаскивать дату и месяц и сравнивать с датой и месяцем текущим. нужна будет помощь в реализации данного подхода - пишите) и второй, который я ВАм предложил выше. Заменяйте TABLE на QUERY. в запросе дополнительно к имеющимся полям вытаскивайте отдельно поле месяца и отдельно поле день. в WHERE ничего писать НЕ НАДО! Тогда вы получите, как и при использовании TTABLE все записи из таблицы. И вот тогда сможете написать простой фильтр к query (примерно такой, о котором Вы писали в сообщении #1) |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
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 |