Вниз
Скачать: 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.011 c
7-45608
V.Turecky
2002-08-03 18:31
2002.10.14
Перезагрузка/Выключение (DOS)


1-45443
glina
2002-10-03 17:23
2002.10.14
Подскажите неопытному


8-45472
Beeper
2002-06-11 23:35
2002.10.14
Flash


4-45627
Delphi 5.01
2002-08-30 09:07
2002.10.14
Problema s TFIleStream!


6-45484
s.kaster
2002-08-13 08:15
2002.10.14
Нужно по нажатию




   Наверх