![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться с фильтром на Odac [D6, Oracle]
Андрусь © (2002-09-19 16:56:00)Привет всем! Нужно наложить фильтр на DataSet,чтобы фильтровать все записи,начинающиеся с апострафа.Если через BDE,то фильтр легко пишется:Filter:=FieldName+"=""*". Но если к базе коннект идёт через Odac,то у меня возникли трудности с написанием этого фильтра. Может кто сталкивался с подобной проблемой. Зараннее всем большое спасибо.
Андрусь (2002-09-23 13:55:00) [1]Я понимаю,но..
Леха_ (2002-09-23 12:04:00) [2]по возможности используй не фильтр а соответствующий SQL запрос
Андрусь (2002-09-23 11:16:00) [3]>roottim
См. постановку задачи. Нужна быстрая обработка в мозгах.
roottim (2002-09-20 13:43:00) [4]используй FilterSQL... работает с where запроса, фильтрует сервер а не датасет
смотрел Filter, чет и правда баг есть... фильтрует если пробежаться по датасету... проверял на 3.3, на 3.6 незнаю, лень!
Андрусь (2002-09-20 12:46:00) [5]>Johnmen
Скорость важна! Всё-таки чего он отрабатывает часто.
>roottim
Честно,говорю - ничего лишнего руками не трогаю. Простейшее приложение - форма,панель,едит,кнопка,грид,сейсия,квери,датасорс.
По клику на кнопку снимаю строку с едита в фильтр,который фильтеред тру. Нет это там. 2 символа - #39,#34 - не проходят.
roottim (2002-09-20 10:52:00) [6]FilterSQL
а вообще Filter унаследован.. и никаких изменений непретерпел, что-то видимо коряво... либо вы, либо одак
Johnmen (2002-09-20 10:49:00) [7]Не надо переживать :-)))
При использовании OnFilterRecord вместо прямого Filter скорость, если и уменьшится, то весьма незначительно...
Андрусь (2002-09-20 10:40:00) [8]>dimis
Нет там Like в лексемах для фильтра.
>ЮЮ
Но почему так часто отрабатывает.
ЮЮ (2002-09-20 09:19:00) [9]>Не подскажите чего событие OnFilterRecord в Odac срабатывает не только для отфильтрованных записей.
Наверное,потому что именно обработчик OnFilterRecord и определяет, будет ли отфильтрована эта запись или нет. А Filter отдыхает. Изучай исходники компонент.
dimis (2002-09-20 08:38:00) [10]
> Андрусь ©
я пытаюсь сказать что в оракле применяется не *, а %
попробуй как я сказал ранее
"LIKE """"||%"
Андрусь (2002-09-19 19:31:00) [11]>Johnmen ©
Не подскажите чего событие OnFilterRecord в Odac срабатывает не только для отфильтрованных записей.
Леха_ (2002-09-19 18:26:00) [12]а LIKE из SQL уже убрали?
95% что сервер отфильтрует быстрее клиента тем более что когда условие по началу строки индексы вполне работают
Андрусь (2002-09-19 18:04:00) [13]>dimis
Я хочу отфильтровать записи,начинающиеся с апострофа. Фильтр ставлю на клиенте. Причём если через БДЕ работаю,то пишу Filter:=FieldName"=""""*"""; и работает,а через Odac нет.
>Johnmen ©
Пишу такую штуку вроде поисковика - по введённым клавишам фильтрую DataSet. Для меня важна скорость. Вряд ли я напишу поисковик более быстрый чем написанный людьми. Так что проще попарится,найти комбинацию символов,на которые необх. менять апостроф.Тем более остальное уже работает.
Johnmen (2002-09-19 17:44:00) [14]А может быть не париться и обрабатывать OnFilterRecord ?
dimis (2002-09-19 17:31:00) [15]какие трудности?
подробней
ODAC возможно не использует LocaSql
попробуй как в oracle
FieldName+ "LIKE "||%"