Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.011 c
3-78798
Talla2k
2003-11-04 17:46
2003.11.24
запрос


3-78773
stud
2003-11-05 15:22
2003.11.24
отчет - как много в этом звуке!


1-78992
Алина
2003-11-14 12:51
2003.11.24
Настоящие профи, скажите почему при печати формы с ChartFx


1-78893
safo
2003-11-12 16:29
2003.11.24
Как переделать приложение в сервис ОС?


3-78783
KIR
2003-11-05 15:34
2003.11.24
Народ, можли как-то добавить пустую строчку в НД?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский