![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Глюки фильтра TClientDataSet [D6, Paradox]
DelphiN! © (2004-11-04 16:25:00)Никто никогда не замечал что TClientDataSet.Filter глючит?
Ото я составляю правильный фильтр, а результаты мне выдаються неправильные! Фильтр составляю типа:
"(DATE >= 01,01,2004 and DATE <= 01,01,2010) and (COMP >= 1 and COMP <= 999) and (SUMMA > 0) and (PERIOD >= 1 and PERIOD <= 999)"
Данные такого типа(подходящие под данное условие) в таблице 100% есть, но фильтр показывает мне что таких данных нет
В чем дело?
Anatoly Podgoretsky (2004-11-06 08:13:00) [1]sniknik © (04.11.04 16:38) [1]
А кто же еще :-)
DelphiN! (2004-11-06 06:51:00) [2]Всем огромное спасибо за помошь!
Rem (2004-11-05 16:52:00) [3]>>У меня есть поле типа tDateTime
var
Date1: TDateTime;
Date2: TDateTime;
'DATE>=' + IntToStr(Trunc(Date1)) + ' AND DATE<=' + IntToStr(Trunc(Date2))
sniknik (2004-11-05 16:14:00) [4]'01.01.2004' со временем '01.01.2004 23:00:000' (вроде бы так, если национальные настройки не повлияют) кавычки обязательны
DelphiN! (2004-11-05 15:37:00) [5]Все разобрался, оказывается проблемма была в том что у таблицы все поля были типа string, проставил все поля по типам и все OK, Кстати как в фильтр передавать дату. У меня есть поле типа tDateTime и я кидаю фильтр скажем такой: date > 01.01.2004 он мне говорит неправильный фильтр, пробовал и 23:00 01.01.2004 и 01,01,2004 и как только не пробовал, так как дату и время в фильтр передать?
sniknik (2004-11-05 08:51:00) [6]а проверить? чудес не бывает, у всего есть логическое обьяснение. (голословные заявления это не доказательство)
DelphiN! (2004-11-05 08:30:00) [7]>sniknik © (05.11.04 08:27) [11]
Остальные поля тоже по условию подходят все поля в столбцах COMP и PERIOD входят в диапазон от 1 до 999
sniknik (2004-11-05 08:27:00) [8]> По идее должны выводиться все поля таблицы, где сумма < 100.
по идее так и будет если исключить влияние остального и сделать только фильтр = SUMMA < 100
DelphiN! (2004-11-05 08:09:00) [9]Даже без указания даты в фильтре таблица фильтруется неправильно, например в таблице есть поля, в столбце summa, значения которых: 150,100,80,60,50,30,40,1. Я делаю фильтр : (COMP >= 1 and COMP <= 999) and (SUMMA < 100) and (PERIOD >= 1 and PERIOD <= 999)
По идее должны выводиться все поля таблицы, где сумма < 100. Такие значения как 80,60,50,30,40,1 подходят, но выводятся поля столбца summa, только со значениями 0 и 1, а поля со значениями 80,60,50,30,40 не выводятся!
Почему и что делать?
DelphiN! (2004-11-05 06:27:00) [10]>>Mike Kouzmine © (04.11.04 17:48) [5]
Какие числа перечислены, обычная дата как дата, как правильно тогда? Если написать в фильтре Date = 01,01,2004 то все работает ...
>Mike Kouzmine © (04.11.04 18:01) [8]
Не порекомендуешь ли ченить хорошее почитать?
Mike Kouzmine (2004-11-04 18:01:00) [11]DelphiN! Почитай про запросы с параметрами. Будет и надежнее, и быстрее чем с фильтрами.
Mike Kouzmine (2004-11-04 17:55:00) [12]Johnmen © (04.11.04 17:53) [6] Ну хочеться ему так..
Johnmen (2004-11-04 17:53:00) [13]>Mike Kouzmine © (04.11.04 17:48) [5]
>01 01 2004
Что за инвентарный номер ?
:)
Mike Kouzmine (2004-11-04 17:48:00) [14]Johnmen © (04.11.04 17:37) [4] 01 01 2004
Johnmen (2004-11-04 17:37:00) [15]>01,01,2004
Что за числа перечислены ?
DelphiN! (2004-11-04 16:50:00) [16]sniknik © (04.11.04 16:38) [1]
А что неправильно в (DATE >= 01,01,2004 and DATE <= 01,01,2010)
?
Silver Alex (2004-11-04 16:43:00) [17]используй лучше OnFilterRecord
sniknik (2004-11-04 16:38:00) [18]оччень правильный фильтр! ну прямо идеал.
(DATE >= 01,01,2004and DATE <= 01,01,2010)
и постоянно у тебя виноват - компонент/другой/ктото но не я...