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