Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.24;
Скачать: CL | DM;

Вниз

Фильтрация   Найти похожие ветки 

 
GIL ©   (2003-11-05 15:36) [0]

помогите, надо отфильтровать бд по дате, так чтобы был без разницы год, но число и месяц из заданного диапазона


 
Sandman25 ©   (2003-11-05 15:52) [1]

OnFilterRecord


 
GIL ©   (2003-11-05 15:55) [2]

а поподробнее?


 
Sandman25 ©   (2003-11-05 16:01) [3]

Обработчик OnFilterRecord, в котором ставить
Accept := true для тех, что надо, и false для тех, что не надо.

Еще можно попытаться использовать Query с where extract(month from mydate) between 1 and 2 and extract(day from mydate) between 25 and 27


 
GIL ©   (2003-11-05 16:04) [4]

а теперь еще один вопросик, как объявлять процедуру фильтрации, чтобы дельфя не ругалась?


 
DenK_vrtz ©   (2003-11-05 16:11) [5]

GIL © (05.11.03 16:04) [4], попросить ее чтоб не ругалась, угостить хорошенько, холить и лелеять

А если серьезно, что значит "объявить процедуру фильтрации"?

Sandman25 © привел исчерпывающий ответ, единственное может про
Filter и Filtered забыл упомянуть.


 
Sandman25 ©   (2003-11-05 16:13) [6]

[5] DenK_vrtz © (05.11.03 16:11)

Filter в данном случае не поможет. В нем можно писать только сравнения типа myfield = 12. Извлечь день и месяц не получится.


 
VAleksey ©   (2003-11-05 16:13) [7]

Дабл клик на событии онфильтеррекорд датасета ;-)


 
DenK_vrtz ©   (2003-11-05 16:15) [8]

Sandman25 ©, да ладно.
А через диапазон?


 
GIL ©   (2003-11-05 16:15) [9]

во-во, я уже догадался, кликнул!!, а извлекать все получается!! спасибо


 
Sandman25 ©   (2003-11-05 16:16) [10]

[8] DenK_vrtz © (05.11.03 16:15)

myfield >= 10 and myfield <= 15?
Пример фильтра для автора приведите. Я не могу.


 
Anatoly Podgoretsky ©   (2003-11-05 16:21) [11]

Раз идет рчь об диапазоне, то год влияния не оказывает.
Вероятно вопрос неточный.


 
DenK_vrtz ©   (2003-11-05 16:27) [12]

Sandman25 ©, если год не учитывать совсем, то свою поправку снимаю.


 
GIL ©   (2003-11-05 16:27) [13]

короче, я извлекаю день и месяц из значения, и если они подходят, то Accept:=true, но вопрос в другом, как вызвать это событие, а то оно не вызывается!


 
Anatoly Podgoretsky ©   (2003-11-05 16:31) [14]

Не видать как ты это делаешь


 
GIL ©   (2003-11-05 16:34) [15]

With main_T do
begin
Active:=False;
IndexName:="ID_Birth";
Active:=True;
First;
i:=Main_TID_Birth.Value;
Last;
j:=Main_TID_Birth.Value;
SetRangeStart;
Main_TID_Birth.Value:=i;
SetRangeEnd;
Main_TID_Birth.Value:=j;
ApplyRange;
end;


 
Anatoly Podgoretsky ©   (2003-11-05 16:40) [16]

Это отлично работает, выдает все указаные записи


 
GIL ©   (2003-11-05 16:42) [17]

вот именно, что все!! а обработчик OnFilterRecord не вызывается, и получается, что никакой фильтрации нет


 
Anatoly Podgoretsky ©   (2003-11-05 16:44) [18]

Это не фильтр, поэтому ему ни к чему вызывать, а все потому что ты все заказал First/Last


 
Anatoly Podgoretsky ©   (2003-11-05 16:45) [19]

А это "я извлекаю день и месяц" где, не наблюдается


 
GIL ©   (2003-11-05 16:50) [20]

но first\last до условий фильтра!! мне надо проверить все записи!! а насчет "я извлекаю день и месяц"
procedure TForm1.Main_TFilterRecord(DataSet: TDataSet;
var Accept: Boolean);
var y,d,m,m1,d1:word;
da:TDate;
begin
Accept:=False;
decodedate(Main_TBirth.Value,y,m,d);
da:=date;
decodeDate(da,y,m1,d1);
DateTimePicker1.DateTime:=Main_TBirth.Value;
DateTimePicker1.Date:=DateTimePicker1.Date+5;
if m<m1 then Accept:=true;
end;
не обращать внимание на смысл, пока он только в том, чтобы хоть что-то фильтровать


 
Sandman25 ©   (2003-11-05 17:01) [21]

[20] GIL © (05.11.03 16:50)

Вы хотите сказать, что показываются записи за ноябрь и декабрь?


 
GIL ©   (2003-11-05 17:05) [22]

показываются все записи


 
GIL ©   (2003-11-05 17:05) [23]

как сделать, чтобы вызывалось OnFilterRecord?


 
Sandman25 ©   (2003-11-05 17:09) [24]

[22] GIL © (05.11.03 17:05)

Вы хотите сказать, что показываются записи за ноябрь и декабрь?


 
Anatoly Podgoretsky ©   (2003-11-05 17:10) [25]

Приведи значения свойств таблицы


 
GIL ©   (2003-11-05 17:14) [26]

все значения стандартные, умолчальные, кроме индекса, имени таблицы и эктив,
показываются абсолютно все записи, даже если я просто ставлю Active:=False; и нигде не присваиваю ему труэ


 
Sandman25 ©   (2003-11-05 17:18) [27]

Filtered установили в True?


 
GIL ©   (2003-11-05 17:18) [28]

нет


 
Anatoly Podgoretsky ©   (2003-11-05 17:22) [29]

GIL © (05.11.03 17:14) [26]
GIL © (05.11.03 17:18) [28]
Тогда чего ты ожидаешь


 
GIL ©   (2003-11-05 17:23) [30]

спасибо, вроде заработало, просто раньше с таким не сталкивался, про свойство знал, но как-то всегда без него все работало, а тут вдруг!! 8)



Страницы: 1 вся ветка

Текущий архив: 2003.11.24;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.036 c
3-78857
Andrey000
2003-11-03 11:56
2003.11.24
Помогите с ADO не освобождается память


14-79188
Думкин
2003-11-03 05:17
2003.11.24
С днем рождения! 3 ноября.


7-79192
p
2003-09-15 12:43
2003.11.24
Как програмно выключить копьютер


14-79139
Mr.Ice
2003-10-31 14:21
2003.11.24
Подскажите как реализовать


7-79209
LexaVV
2003-09-16 10:08
2003.11.24
MAC адрес, BIOS