Проблемы с фильтрацией (IBQuery)
5139
27
gorlan
experienced
вообщем проблема в следующем, есть IBQuery1, его нужно отфильтровать по заданному значению которое помещается в Edit1.text. Текст программы следующий:
IBQuery1.Filter:="FIO="+chr(39)+edit1.text+"*"+chr(39);
IBQuery1.Filtered:=true;
IBQuery1.Refresh;(и вот этот рефреш не работает падла)
IBQuery1.Filter:="FIO="+chr(39)+edit1.text+"*"+chr(39);
IBQuery1.Filtered:=true;
IBQuery1.Refresh;(и вот этот рефреш не работает падла)
Буду рад любому совету, если в синтаксисе ошибка подправьте, если подругому можно процедуру описать подскажите как.
А как именно не работает? выдает пустой датасет?
если можешь, долбанись в аську, которая в профиле указана
если можешь, долбанись в аську, которая в профиле указана
Может лучше фильтр этот не использовать (если логика задачи позволяет), а засунуть его в Where самого запроса, через параметр?
gorlan
experienced
Каким образом это сделать? Мне нужно сделать фильтрацию по элементу, ну допустим у меня таблица ФИО и телефон
Есть допустим Пупкин, так я хочу набрать в едите1.текст: Пуп
нажать button и он находил позицию в таблице, как это он делал под таблицу парадокс.
Есть допустим Пупкин, так я хочу набрать в едите1.текст: Пуп
нажать button и он находил позицию в таблице, как это он делал под таблицу парадокс.
Типо говорит нельзя метод Refresh применять. ну не помню точно но примерно так. а без рефреша не работает)
аськи нет порты заблокироаны, все заблокировано.
Сейчас читают
Трансновогодний дозор
63003
1001
Для кого туризм - не просто отдых, а стиль жизни!
10540
37
Скидки, акции, распродажи (часть 2)
339430
1000
А что нибудь такое
Query.Active:=false;
Query.Clear
Query.Add('Сам запрос в кавычках')
Query.Add('where FIO='+chr(39)+edit1.text+'*')
Query.Active:=true;
Query.Active:=false;
Query.Clear
Query.Add('Сам запрос в кавычках')
Query.Add('where FIO='+chr(39)+edit1.text+'*')
Query.Active:=true;
попробую как вариант, хотя сомневаюсь, это в SQL лезть а я так хочу просто.
кстати в InterBase почти тоже самое что и в Paradox 7 и BDE)))
IBQuery1.Filter:="FIO="+chr(39)+edit1.text+"*"+chr(39);И чему в конце концов равно это свойство IBQuery1.Filter?
Только сейчас обратил внимание
Кавычки (FIO='' и т.п.)должны быть одинарными!
Кавычки (FIO='' и т.п.)должны быть одинарными!
ну товарищи не думайте что я чайник уж до такой степени, просто это я на память писал, а не на носители код программы принес, все вышеописанное может я не так уж синтаксис донес, очень хорошо работало на paradoxe 7 и BDE, фильтрация была по table1 я просто заменил на IBQuery1, а она не работает я не вижу тут ошибок и совета прошу как правильно?
IBQuery1.Filter:='FIO=Пуп*';кажись должно быть IBQuery1.Filter:='FIO="Пуп*"';
да пофиг как, это работало и работает я даже над ним не задумывался не разу проблема то в IBQuery1.refresh; точно в этом и не в чем больше именно эту строчку как сменить или вообще мне нужен итог я не знаю к ними как прийти ошибка тока в refresh бредложите чего нибудь а не копайтесь в коде, код написан правильно только функционалу не отвечает
проблема то в IBQuery1.refreshЗачем он нужен, этого должно быть достаточно:
IBQuery1.Filter:=...
IBQuery1.Filtered:=true;
Не понимаю.... зачем использовать то - что у тебя глючит .... где вероятность, что сейчас ты сделаешь - а потом у тебя неожиданно где нить этот косяк опять всплывет ??
На сколько я знаю из собственных познаний ... ФИЛЬТР работает с уже отобранными данными ... внутри датасета ... поэтому делать для него рефреш не совсем корректно ...
P.S. Все написано выше, надо проверять. Сам никогда не работал с фильтрацией ...
На сколько я знаю из собственных познаний ... ФИЛЬТР работает с уже отобранными данными ... внутри датасета ... поэтому делать для него рефреш не совсем корректно ...
P.S. Все написано выше, надо проверять. Сам никогда не работал с фильтрацией ...
мне нужно по неполному текстовому значению поля, найти это самое поле. вот так. Допустим я хочу найти поле с заполненной фамилией пупкин. я хочу ввести не полное значение допустим: 'пуп' и чтоб он мне указал на поле пупкин. вот что я хочу а как к этому прийти не знаю. второй день бьюсь
просто есть таблица соответствия номеров фамилии, я хочу находить по неполной фамилии номера.
Не пробовали использовать параметры фильтрации FilterOptions?
IBQuery1.Filter := 'пуп*';
IBQuery1.FilterOptions := [foNoPartialCompare];
IBQuery1.Filtered := True;
IBQuery1.Filter := 'пуп*';
IBQuery1.FilterOptions := [foNoPartialCompare];
IBQuery1.Filtered := True;
попробую но тут синтаксис все равно надо изменить.
Даже обидно, нифига не работает все выше перечисленное не работает, даже готов IBTable отфильтровать, но не получается, смог достичь только такого результата что по полному значению поля его находит, а мне бы по неполному, помогите товари очень надо((((
SELECT * FROM Table WHERE FIO LIKE 'Пуп%'
попробую вот так вечером, надеюсь получится а то буксую на одном месте((((
нехилая головоломка попалась вроде, как элементарно ватсон, а решения за три дня я так и не нашел.