Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.24;
Скачать: CL | DM;

Вниз

ADODataSet.Filter:= (... LIKE ...) AND (... LIKE ...)   Найти похожие ветки 

 
Silver_ ©   (2003-07-02 09:52) [0]

Как осуществить филтер по LIKE по более одного поля
типа:
ADODataSet.Filter:="(Fld1 LIKE *""ABC""*) AND(Fld2 LIKE *""def""*)";

Сразу опережу желателен ответ с использованием именно ADODataSet.Filter:= а не ADODataSet.OnFilterRecord :)


 
sniknik ©   (2003-07-02 10:50) [1]

а в чем проблема то?
кроме явной ошибки в приведенном фильтре
ADODataSet.Filter:="(Fld1 LIKE ""*ABC*"") AND (Fld2 LIKE ""*def*"")";


 
Silver_ ©   (2003-07-02 10:53) [2]

Во блин ошибся * не туды сунул вот так должно быть:
ADODataSet.Filter:="(Fld1 LIKE ""*ABC*"") AND(Fld2 LIKE ""*def*"")";

В догонку СУБД Access

Вобщем трабл в том что более 1-го LIKE в одном филтре не не хочет принять, а мне очень надо. Как быть???


 
Silver_ ©   (2003-07-02 11:05) [3]


> кроме явной ошибки в приведенном фильтре

здесь ошибся, сам заметил :), но в проге все нормально:
ADODataSet.Filter:="(Name LIKE "#39"*"+DoubleQuotedString(NameEdit.Text,"""")+"*"#39
+") AND (Abbr LIKE "#39"*"+DoubleQuotedString(AbbrEdit.Text,"""")+"*"#39
+")";

где DoubleQuotedString удваивает " или " (по необходимости)

Верний код не проходит. А следующий на ура
ADODataSet.Filter:="(Name LIKE "#39"*"+DoubleQuotedString(NameEdit.Text,"""")+"*"#39
+")";



 
sniknik ©   (2003-07-02 11:10) [4]

попробуй еще раз.
попробуй заменить * на %.
попробуй без преобразований просто внеси строку "(Fld1 LIKE ""*ABC*"") AND (Fld2 LIKE ""*def*"")";
скажи в чем выражается отказ. (просто не находит? проверь условие)

у меня работает без вопросов.


 
Silver_ ©   (2003-07-02 12:59) [5]

Все разобрался, все работает
Сначала не проверял
if NameEdit.Text <> "" then ...
if AbbrEdit.Text <> "" then ...
а потом не выключал фильтр до построения условия фильтра вобщем правильно должно быть так (если кто-нить сталкнется с этим чтоб не вешался :о)) )

ADODataSet.Filtered:=False;
if NameEdit.Text <> "" then
ADODataSet.Filter:="Name LIKE "#39"*"+DoubleQuotedString (NameEdit.Text,"""")+"*"#39;
if AbbrEdit.Text <> "" then
begin
if ADODataSet.Filter <> "" then
ADODataSet.Filter:=ADODataSet.Filter + " AND ";
ADODataSet.Filter:=ADODataSet.Filter
+ "Abbr LIKE "#39"*"+DoubleQuotedString(AbbrEdit.Text,"""")+"*"#39;
end;
ADODataSet.Filtered:=True;


ЗЫ Я частенько замечаю что на мои вопросы тока
> sniknik ©
либо слишком ядрённые для других либо... :о)

отдельное Спосибо тебе sniknik © за поддержку!!!



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

Текущий архив: 2003.07.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
14-78070
Lenza
2003-07-07 12:39
2003.07.24
Watches


1-77922
Сергей Ч
2003-07-10 14:34
2003.07.24
Установил Delphi7


1-77989
Кен
2003-07-09 07:54
2003.07.24
Как сделать такое же меню как в редакторе Дельфи выпадает, при


1-77909
XobBIT
2003-07-09 19:02
2003.07.24
ListView1 и память...


3-77780
IGOR_1
2003-07-02 14:39
2003.07.24
поиск dbf