![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADOTable.Filter и float значения
George © (2010-11-30 09:23:00)Вот интересно. Есть поле в таблице содержащее числа с плавающей запятой. Есть ADOTable (/ADODataSet/ADOQuery - не суть важно). Ввожу в Edit что-то вроде 4,2 например. Теперь мне надо, чтобы сработал фильтр у датасета:
TariffsADOTable.Filtered := false;
TariffsADOTable.Filter := '(CatID = 1) and ' +
'(MinValue <= ' + FloatToStr(LDMVal) + ') and ' +
'(MaxValue >= ' + FloatToStr(LDMVal) + ')';
TariffsADOTable.Filtered := true;
Так в результате фильтр не работает, потому что видимо запятая там мешает. Как обойти? Можно конечно данные доставать не с помощью фильтра, а запросец делать, но не хочется.
George (2010-11-30 11:58:00) [21]
> Ega23 © (30.11.10 11:56) [15]
А так таки вру. Глянул - про даты тоже тишина.
> З.Ы. С фильтрами не работал принципиально.
Канешно. Они тупые потому что. И малоюзабельные.
George (2010-11-30 11:56:00) [22]
> Anatoly Podgoretsky © (30.11.10 11:49) [13]
Ну мое скромное мнение, что да. Я бы предусмотрел удобную фильтрацию по основным типам данных - строкам, целым числам, числам с плавающей запятой, датам и логическим типам. Что мешало сделать параметры для фильтрации?
Ega23 (2010-11-30 11:56:00) [23]
> Вроде про даты тоже че то было.
unit System;
....
TDateTime = type Double;
З.Ы. С фильтрами не работал принципиально.
George (2010-11-30 11:53:00) [24]
> sniknik © (30.11.10 11:42) [12]
Речь шла о концепции фильтра. Насколько я знаю, оно одинаково работает что у TADOTable, что у TADOQuery, что у TADODataSet.
> а дельфи тут не причем. это не язык дельфи, это внешнее.
> т.е. даже если нету, то все одно не обязаны.
Я говорю про справку, идущую в комплекте с Delphi 2010. Возможно это есть в справке к Delphi 7, но к 2010-ому нету.
> такой нет, и не может быть. а вот про сам метод/переменную
> Filter, ее правила/особенности, другое дело.
Конечно. Есть. Но все либо про строки, либо про целые числа. Вроде про даты тоже че то было. Но все не то - не мой случай.
> оно есть, и оно весьма простое. (не, есть и особенности,
> но не в этом случае).
Ну таки недостаточное, как мне видится.
Anatoly Podgoretsky (2010-11-30 11:49:00) [25]> George (30.11.2010 11:01:07) [7]
Так ли это
sniknik (2010-11-30 11:42:00) [26]> Юзабилити у TTable?!?!?!?
он упоминал и ADODataSet, надежда есть, иначе не стоило бы и пытаться.
sniknik (2010-11-30 11:40:00) [27]> у меня Delphi 2010
а дельфи тут не причем. это не язык дельфи, это внешнее. т.е. даже если нету, то все одно не обязаны.
> где ни слова о фильтрации по числам с плавающей запятой.
такой нет, и не может быть. а вот про сам метод/переменную Filter, ее правила/особенности, другое дело.
> У компонента тоже должно быть некое юзабилити для использования оного программистом.
оно есть, и оно весьма простое. (не, есть и особенности, но не в этом случае).
Ega23 (2010-11-30 11:37:00) [28]
> У компонента тоже должно быть некое юзабилити для использования
> оного программистом.
Юзабилити у TTable?!?!?!?
Вы делаете мне смеяться.
George (2010-11-30 11:19:00) [29]
> sniknik © (30.11.10 11:08) [8]
Во-первых, я могу Вам выложить справку (у меня Delphi 2010), где ни слова о фильтрации по числам с плавающей запятой. Во-вторых, если Вы считаете нормальным, логичным и хорошим подходом то, что оно таки не документировано, и еще и сделано хрен знает как (могли быть хоть параметры предусмотреть, как для SQL запросов), то мне даже не о чем с Вами спорить. У компонента тоже должно быть некое юзабилити для использования оного программистом.
sniknik (2010-11-30 11:08:00) [30]> коли фильтр тупой. :)
можно поспорить, кто, и если выбирать между документированным фильтром, и программистом не сумевшим в нем разобраться... выбор очевиден.
George (2010-11-30 11:01:00) [31]Переделал фильтрацию на запросы. Лень ленью, а куда деваться, коли фильтр тупой. :)
И. Павел (2010-11-30 10:37:00) [32]> Да че та лень.
Ну хоть честно ответил, а не стал заливать про необходимость в этой задаче TTable и локальной фильтрации :)
Inovet (2010-11-30 10:28:00) [33]> [4] George © (30.11.10 10:27)
> Да че та лень. :)
А, ну это уважительная причина.
George (2010-11-30 10:27:00) [34]
> А почему нехочется запрос?
Да че та лень. :)
Inovet (2010-11-30 10:15:00) [35]> [0] George © (30.11.10 09:23)
> FloatToStr(LDMVal)
Попробуй хотябы
FormatFloat
А почему нехочется запрос?
> [0] George © (30.11.10 09:23)
> Можно конечно данные доставать не с помощью фильтра, а запросец
> делать, но не хочется.
sniknik (2010-11-30 10:12:00) [36]> а не тот, который установлен в региональных настройках локальной машины?
в запросах на них плюют, т.к. запятая зарезервирована за перечислением.
И. Павел (2010-11-30 10:02:00) [37]Обычно фильтрами не пользуюсь (и уж тем более TADOTable), но может быть там просто другой разделитель, а не тот, который установлен в региональных настройках локальной машины?