Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Вниз

Нужна помощь по Filter.   Найти похожие ветки 

 
Jet ©   (2004-05-30 12:47) [0]

Есть таблица .dbf (Fox)
Есть переменная fam, которая принимает разные значения.
Например: "Петро","Ивано","Сидор", т.е. первые пять букв фамилии.
Нужно составить фильтр по этой переменной для поля Fname таблицы.
Что-то вроде этого:
Form1.Table.Filter := "Table.Fname like fam";
--
Но как правильно сделать фильтр?


 
YurikGl ©   (2004-05-30 12:54) [1]

В  хелпе нашел

Memo LIKE "%filters%"

Тебе нужно
Имя поля like "Ивано%"


 
Jet ©   (2004-05-30 12:57) [2]

Мне нужно что-то типа такого:
Form1.Table.Filter := "Table.Fname like fam + "%"";
Но как приваильно оформить фильтр?
Переменная fam принимает разные значения и явно указывать в фильтре их не получится.


 
YurikGl ©   (2004-05-30 13:01) [3]

Form1.Table.Filter := "имя поля таблицы like "+#39+fam+"%"+#39;

fam должно быть строкой.


 
Anatoly Podgoretsky ©   (2004-05-30 13:14) [4]

OnFilter Record не имеет ограничений


 
YurikGl ©   (2004-05-30 13:30) [5]


> Anatoly Podgoretsky ©   (30.05.04 13:14) [4]


Не понял...


 
Jet ©   (2004-05-30 13:33) [6]

Фильтр оформлен не правильно, что-то с кавычками не так.
А как использовать фильтр по двум переменным и двум полям?
--
Form1.Table.Filter := "(Fname like "+#39+fam+"%"+#39) and (Lname like "+#39+fam+"%"+#39); ???
--
Только оформлен не правильно синтаксически.


 
YurikGl ©   (2004-05-30 13:35) [7]

Попробуй
Form1.Table.Filter := "(Fname like "+#39+fam+"%"+#39+") and (Lname like "+#39+fam+"%"+#39);


 
Jet ©   (2004-05-30 13:36) [8]

Попробую, сейчас возможности нет, базы все на работе.


 
YurikGl ©   (2004-05-30 13:39) [9]

Дык создай быстренько на access-е и проверь. А то опять вопросы появятся.


 
Vlad ©   (2004-05-30 13:51) [10]


> YurikGl ©   (30.05.04 13:35) [7]

Я конечно не большой спец по фильтрам, но с каких это пор в выражинии для фильтра позволяется like % писать ?
Извиняюсь, но по-моему твой пример - это бред.

property Filter: String;

Specifies the text of the current filter for a dataset.

Description

Use Filter to specify a dataset filter. When filtering is applied to a dataset, only those records that meet a filter’s conditions are available to an application. Filter contains the string that describes the filter condition. For example, the following filter condition displays only those records where the State field is "CA" or "MA":

State = "CA" or State = "MA"

To filter strings bases on partial comparisons, use an asterisk as a wildcard. For example:

State = "M*"

Note: Applications can set Filter at runtime to change the filtering condition for a dataset at (for example, in response to user input).


 
Jet ©   (2004-05-30 13:53) [11]

> Vlad

Так а переменные тогда как использовать? Явно указывать в фильтре нет возможности.


 
Vlad ©   (2004-05-30 14:01) [12]


> Jet ©   (30.05.04 13:53) [11]


> Так а переменные тогда как использовать? Явно указывать
> в фильтре нет возможности.

Почему нет ?
я же привел справку, читай внимательнее:

Note: Applications can set Filter at runtime to change the filtering condition for a dataset at (for example, in response to user input).


 
YurikGl ©   (2004-05-30 14:08) [13]

Vlad ©   (30.05.04 13:51) [10]

Если я не ошибаюсь, фильтр обрабатывается СУБД.

Одна и та же строка
ADODataSetSborki.Filter:="naimenovan like"+#39+"%1%"+#39;

в Access не катит а в IB прошла.

З.Ы. Если я ничего не накосячил, когда проверял


 
sniknik ©   (2004-05-30 14:16) [14]

Vlad ©   (30.05.04 13:51) [10]
> Я конечно не большой спец по фильтрам, но с каких это пор в выражинии для фильтра позволяется like % писать ?
> Извиняюсь, но по-моему твой пример - это бред.
в ADO можно, именно с like.

YurikGl ©   (30.05.04 14:08) [13]
пробел пропустил,
ADODataSetSborki.Filter:="naimenovan like "+#39+"%1%"+#39;
аксесс тоже такое берет и MSSQL


 
YurikGl ©   (2004-05-30 14:19) [15]

sniknik ©   (30.05.04 14:16) [14]

Странно, у меня без пробела сработало.

В access-е теперь тоже получилось. :)


 
Vlad ©   (2004-05-30 14:39) [16]

Возможно, но я имел ввиду БДЕ, автор движок ведь не уточнял


 
Anatoly Podgoretsky ©   (2004-05-30 14:42) [17]

Бессмысленно обсуждать формат фильтра в отрыве от движка


 
Jet ©   (2004-05-30 14:52) [18]

> ADODataSetSborki.Filter:="naimenovan like "+#39+"%1%"+#39;

Что значит %1%?

Можно ли использовать фильтр таким образом?:

Form1.Table.Filter := "(Fname like "+#39+fam+"%"+#39+") and (Lname like "+#39+name+"%"+#39);

Где fam и name - переменные, которые принимают разные значения, Fname и Lanme - поля таблицы.


 
sniknik ©   (2004-05-30 15:18) [19]

Jet ©   (30.05.04 14:52) [18]
прочитай 100 раз.
-> Anatoly Podgoretsky ©   (30.05.04 14:42) [17]
не поможет, читай еще столько же в слух и с выражением.


 
YurikGl ©   (2004-05-30 15:28) [20]


> Что значит %1%?


Значит выбрать записи у в которых в соответствующем поле есть символ "1"


> Можно ли использовать фильтр таким образом?:

А ты попробуй...



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

Форум: "Базы";
Текущий архив: 2004.06.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.037 c
3-1086048729
Equillibrium
2004-06-01 04:12
2004.06.27
Какая Макс длина поля со строкой в таблице db


1-1086796916
Angel_
2004-06-09 20:01
2004.06.27
Как получить доступ к событиям формы пока работает цикл?


4-1084729893
NiaSoft
2004-05-16 21:51
2004.06.27
Как сделать свою панель задач


3-1086073144
Valeri
2004-06-01 10:59
2004.06.27
Visual Foxpro


1-1086777916
Slaga
2004-06-09 14:45
2004.06.27
Почему екземпляры класса TMarsRover не содержат таблицу вирт мето





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский