Форум: "Начинающим";
Текущий архив: 2013.12.08;
Скачать: [xml.tar.bz2];
Внизdataset не фильтрует время Найти похожие ветки
← →
ixen (2013-02-21 06:38) [0]Подскажите почему фильтрация поля типа Time не срабатывает?
procedure TFjournal.daterSelectionChanged(Sender: TObject; const AStart, AFinish: TDateTime);
var ini:TIniFile;
e,s,d:string;
begin
FillJournal(dater.date);
ini:=Tinifile.Create(Fmain.app_path+"settings.ini");
s:=QuotedStr(TimeToStr(ini.ReadTime("Work_time","s_time",StrToTime("8:00:00")))) ;
d:=QuotedStr(TimeToStr(ini.ReadTime("Work_time","do_time",StrToTime("17:00:00")) ));
ini.Free;
e:="zdate="+quotedstr(datetostr(dater.date))+" and (start_time>="+s+") and (start_time<="+d+")";
Fmain.journal_dset.Filter:=e;
Fmain.journal_dset.Filtered:=True;
end;
текст фильтра получается таким:(zdate="21.02.2013") and (start_time>="8:00:00") and (start_time<="18:00:00")
Причем если условия по времени убрать.. по дате фильтруется нормально, а со временем таблица пустая. Что делаю не так?
P.S. использую FibDataset
← →
ixen (2013-02-21 07:50) [1]Вопрос снимается... сделал через условия запроса, приходится в рантайме менять selectsql у датасета
← →
Ega23 © (2013-02-21 08:15) [2]
> Что делаю не так?
Скорее всего в формате проблема.
← →
sniknik © (2013-02-21 08:23) [3]> (start_time>="8:00:00") and (start_time<="18:00:00")
8 больше 1, условие не выполнимо. делай тогда уж так (start_time>="08:00:00") and (start_time<="18:00:00") раз строки сравниваешь.
← →
Anatoly Podgoretsky © (2013-02-21 08:38) [4]> Ega23 (21.02.2013 08:15:02) [2]
В нем дело 8-00 > 10-00
← →
ixen (2013-02-21 08:45) [5]
> делай тогда уж так (start_time>="08:00:00") and (start_time<="18:
> 00:00") раз строки сравниваешь.
делал .. тоже самое
← →
sniknik © (2013-02-21 10:23) [6]> тоже самое
значит нет подходящих и под такое условие. или тип поля в базе не строка, несмотря на то как ты сравниваешь (автоприведение типа может сделать что угодно, хоть адрес строки выдать).
← →
ixen (2013-02-21 16:00) [7]
> или тип поля в базе не строка,
тип поля TIME, СУБД Firebird 2.5 , Dialect 3
← →
sniknik © (2013-02-21 16:50) [8]не знаю как в "фибах", а в ado фильтр дат обрамляется в ##, т.е. отлично от строки. правда там нет "чистого времени", но ... короче разница должна быть.
← →
Кщд (2013-02-22 05:51) [9]>ixen (21.02.13 16:00) [7]
используйте параметры уже и не переводите наше время в строки
← →
sniknik © (2013-02-22 08:04) [10]> используйте параметры уже
у него фильтр, а не запрос.
т.е. грубо, запросом получаем данные за день, после эти данные бьем по часам фильтром. переводить на запросы это делать их 24 вместо 1. это как я понял.
← →
Кщд (2013-02-22 18:41) [11]>переводить на запросы это делать их 24 вместо 1. это как я понял.
зачем 24?
where (его_предикат_если_он_вообще_есть:)) and (start_time > :t or :t is null) and (start_time < :t2 or :t2 is null)
← →
sniknik © (2013-02-23 00:02) [12]> зачем 24?
за "надом", блин, не тупи, а?
запрос это запрос, фильтр результата, это фильтр результата, если делать все на запросах вместо фильтров, это значит увеличить их количество на количество необходимых фильтраций. нужно будет сутки на минуты разложить будет (по твоему) 24*60 запросов.
> where (его_предикат_если_он_вообще_есть:)) and (start_time > :t or :t is null) and (start_time < :t2 or :t2 is null)
еще раз
у него фильтр, а не запрос.
where и параметры в фильтрах не поддерживаются (обычно... или в фибах сделали?).
← →
Кщд (2013-02-24 18:40) [13]>sniknik © (23.02.13 00:02) [12]
>за "надом", блин, не тупи, а?
чего и Вам желаю)
перечитайте "ixen (21.02.13 07:50) [1]"
← →
sniknik © (2013-02-24 20:49) [14]> перечитайте "ixen (21.02.13 07:50) [1]"
и что? это объяснило почему фильтр не работает?
← →
Кщд (2013-02-24 21:00) [15]>sniknik © (24.02.13 20:49) [14]
>и что? это объяснило почему фильтр не работает?
это объяснило, почему предложил использовать параметры
почему не работает фильтр, очевидно из первого поста: строка != время
← →
sniknik © (2013-02-25 00:16) [16]> это объяснило, почему предложил использовать параметры
после решения? о котором сообщил автор. смешно.
← →
Кщд (2013-02-25 09:46) [17]>sniknik © (25.02.13 00:16) [16]
>после решения? о котором сообщил автор. смешно.
нет, после того, как в "ixen (21.02.13 07:50) [1]" он сообщил: "приходится в рантайме менять selectsql у датасета", чего не произойдёт, если использовать параметры именно так, как предложил я.
дальнейший диалог мне не интересен. Ваше желание остаться правым - также понятно.
← →
Anatoly Podgoretsky © (2013-02-27 19:59) [18]> Кщд (24.02.2013 21:00:15) [15]
Не тоычто не время, оно вообще не время, а строка
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.12.08;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.011 c