Вниз
Скачать: CL | DM;

Помогите разобраться с фильтром на Odac   Найти похожие ветки 

← →
Андрусь ©   (2002-09-19 16:56) [0]

Привет всем! Нужно наложить фильтр на DataSet,чтобы фильтровать все записи,начинающиеся с апострафа.Если через BDE,то фильтр легко пишется:Filter:=FieldName+"=""*". Но если к базе коннект идёт через Odac,то у меня возникли трудности с написанием этого фильтра. Может кто сталкивался с подобной проблемой. Зараннее всем большое спасибо.


← →
dimis   (2002-09-19 17:31) [1]

какие трудности?
подробней
ODAC возможно не использует LocaSql
попробуй как в oracle
FieldName+ "LIKE "||%"


← →
Johnmen ©   (2002-09-19 17:44) [2]

А может быть не париться и обрабатывать OnFilterRecord ?


← →
Андрусь ©   (2002-09-19 18:04) [3]

>dimis
Я хочу отфильтровать записи,начинающиеся с апострофа. Фильтр ставлю на клиенте. Причём если через БДЕ работаю,то пишу Filter:=FieldName"=""""*"""; и работает,а через Odac нет.
>Johnmen ©
Пишу такую штуку вроде поисковика - по введённым клавишам фильтрую DataSet. Для меня важна скорость. Вряд ли я напишу поисковик более быстрый чем написанный людьми. Так что проще попарится,найти комбинацию символов,на которые необх. менять апостроф.Тем более остальное уже работает.


← →
Леха_   (2002-09-19 18:26) [4]

а LIKE из SQL уже убрали?
95% что сервер отфильтрует быстрее клиента тем более что когда условие по началу строки индексы вполне работают


← →
Андрусь ©   (2002-09-19 19:31) [5]

>Johnmen ©
Не подскажите чего событие OnFilterRecord в Odac срабатывает не только для отфильтрованных записей.


← →
dimis   (2002-09-20 08:38) [6]


> Андрусь ©

я пытаюсь сказать что в оракле применяется не *, а %
попробуй как я сказал ранее
"LIKE """"||%"


← →
ЮЮ ©   (2002-09-20 09:19) [7]

>Не подскажите чего событие OnFilterRecord в Odac срабатывает не только для отфильтрованных записей.

Наверное,потому что именно обработчик OnFilterRecord и определяет, будет ли отфильтрована эта запись или нет. А Filter отдыхает. Изучай исходники компонент.


← →
Андрусь ©   (2002-09-20 10:40) [8]

>dimis
Нет там Like в лексемах для фильтра.
>ЮЮ
Но почему так часто отрабатывает.


← →
Johnmen ©   (2002-09-20 10:49) [9]

Не надо переживать :-)))
При использовании OnFilterRecord вместо прямого Filter скорость, если и уменьшится, то весьма незначительно...


← →
roottim   (2002-09-20 10:52) [10]

FilterSQL
а вообще Filter унаследован.. и никаких изменений непретерпел, что-то видимо коряво... либо вы, либо одак


← →
Андрусь ©   (2002-09-20 12:46) [11]

>Johnmen
Скорость важна! Всё-таки чего он отрабатывает часто.
>roottim
Честно,говорю - ничего лишнего руками не трогаю. Простейшее приложение - форма,панель,едит,кнопка,грид,сейсия,квери,датасорс.
По клику на кнопку снимаю строку с едита в фильтр,который фильтеред тру. Нет это там. 2 символа - #39,#34 - не проходят.


← →
roottim   (2002-09-20 13:43) [12]

используй FilterSQL... работает с where запроса, фильтрует сервер а не датасет
смотрел Filter, чет и правда баг есть... фильтрует если пробежаться по датасету... проверял на 3.3, на 3.6 незнаю, лень!


← →
Андрусь ©   (2002-09-23 11:16) [13]

>roottim
См. постановку задачи. Нужна быстрая обработка в мозгах.


← →
Леха_   (2002-09-23 12:04) [14]

по возможности используй не фильтр а соответствующий SQL запрос


← →
Андрусь ©   (2002-09-23 13:55) [15]

Я понимаю,но..



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.013 c
14-45579
.nuke
2002-09-20 00:14
2002.10.14
Администратору... ( веб-мастеру )


1-45377
amo
2002-10-05 13:11
2002.10.14
изменить ресурсы в EXE


3-45196
Sherlock99
2002-09-23 10:52
2002.10.14
Перенос заголвков столбцов в DBGrid?


14-45555
Grifon
2002-09-20 09:13
2002.10.14
Троянские лошади...


14-45506
Карелин Артем
2002-09-18 12:32
2002.10.14
Инет через GPRS.




   Наверх