![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#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; |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
А СУБД какая? тип BD Какой?
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 04.03.2009
Сообщений: 12
|
![]()
на firebird сервер делаю, использую компоненты interbase
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 04.03.2009
Сообщений: 12
|
![]()
подскажите кто-нибудь! вопрос остается не решенным
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
в запросе получайте отдельно день и отдельно - месяц.
если не ошибаюсь, это будет что-то вроде: Код:
|
![]() |
![]() |
![]() |
#6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
К сожалению я не знаю как работать с FireBird. Но на твоем месте бы попробовал просто выполнить запрос где учавствует дата дабы понять как в запросе работать с датами.
I'm learning to live...
|
![]() |
![]() |
![]() |
#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. Причина: уточнение |
![]() |
![]() |
![]() |
#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 |