![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фильтрация [D5, Paradox]
Miss © (2002-11-10 08:23:00)Пусть имеется поле типа DateTime, через TTable необходимо отфильтровать только по году
Anatoly Podgoretsky (2002-11-10 16:14:00) [21]Оно правильно раставляет кавычки, лучше это использовать, чек конструкции типа """+IntToStr()+"""
Miss (2002-11-10 16:11:00) [22]>Anatoly Podgoretsky ©
Подробнее о QuotedStr можно?
Anatoly Podgoretsky (2002-11-10 15:55:00) [23]Ну так привели как ты Edit превращаешь в фильтр
Miss (2002-11-10 15:43:00) [24]Дело не в выборе SetRange или OnFiltered.
Здесь под образцом поиска имеется в виду то что пользователь ввел, например, в Edit. Хотя конечно сказать "образец поиска" будет не совсем верно, но что ж сори за некорректную формулировку.
Да, при компоновке даты из строки компилятор ругается -"1.01.1968" не дата. Если разделитель / тоже самое происходит.
Вот и возник вопрос может это можно проще реализовать.
MsGuns (2002-11-10 14:00:00) [25]Событие OnFiltered
Anatoly Podgoretsky (2002-11-10 13:44:00) [26]Чем эти плохи, вариант с SetRange работает быстрее, чем фильтр, но требует активного индекса по полю. Фильтру же индексы не требуются.
Если образец "поиска" (смущает это понятие в применении к фильтру), то построение фильтра оченб простое, с учетом, что локализация совпадает, то
Table.Filter := "Field>="+QuotedStr("1.01." + StrToInt(Year)) + " and Field<="+QuotedStr("31.12." + StrToInt(Year));
Miss (2002-11-10 13:32:00) [27]Есть ли еще варианты?
Vladislav (2002-11-10 09:18:00) [28]попробуй сделать фильтр Field >= 1.01.1980 and Field <= 31.12.1980
Miss (2002-11-10 08:39:00) [29]Это понятно, и др. методы имеются... Но вопрос в другом-
запись в поле имеет вид 10.10.1980 образец поиска 1980
iNew (2002-11-10 08:26:00) [30]Table1.SetRange