Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1371546824
брат Птибурдукова
2013-06-18 13:13
2013.12.08
ХЕ4


15-1371457959
Sergey Masloff
2013-06-17 12:32
2013.12.08
И опять про ЕГЭ


2-1361450554
Token
2013-02-21 16:42
2013.12.08
Список объектов с интерфейсами.


15-1369665361
Rouse_
2013-05-27 18:36
2013.12.08
Пакет статей по перехвату.


8-1233672337
salamander
2009-02-03 17:45
2013.12.08
Как сделать повтор звука в компоненте MediaPlayer?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский