Форум: "Базы";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];
ВнизПомогите разобраться с фильтром на 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 вся ветка
Форум: "Базы";
Текущий архив: 2002.10.14;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.008 c