Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сделать множественный фильтр с использованием ClientDataSet


я ©   (2011-10-03 02:07:00) 


BaseAlphabet.ClientDataSet1.Filtered := false;
BaseAlphabet.ClientDataSet1.filter := ('Square = Square') and
   ('CentrMassX = xc') and ('CentrMassY = yc');
BaseAlphabet.ClientDataSet1.Filtered := true;


Так не работает. База файловая. Хранится в файлах *.сds;


Германн   (2011-10-04 01:40:00) [1]


> кажется заработало.
>

Когда "кажется", креститься надо.
Вот ИШ тебе подсказал, что нужно использовать, если решать вопрос грамотно в рамках твоих знаний.


я   (2011-10-04 01:29:00) [2]


> Честно скажу: не в курсе, т.к. никогда не использовал, предпочитал
> фильтрацию на сервере запросом. Но по моим ощущениям в стандартных
> реализациях TDataSet задание переменных невозможно.
> Т.е. должно быть что-то типа (Square = 'xxx') and (CentrMassX
> = 18) and (CentrMassY = 34)


BaseAlphabet.ClientDataSet1.filter := 'Square ='+  IntToStr(Square) + ' and CentrMassX =' + IntToStr(xc) + ' and CentrMassY ='+ IntToStr(yc);

кажется заработало.


Игорь Шевченко   (2011-10-03 21:57:00) [3]

Use OnFilterRecord, Luke


Ega23   (2011-10-03 21:55:00) [4]


> считал за переменные а не поля? вопрос на 3 секунды для
> тех кто в курсе.....


Честно скажу: не в курсе, т.к. никогда не использовал, предпочитал фильтрацию на сервере запросом. Но по моим ощущениям в стандартных реализациях TDataSet задание переменных невозможно.
Т.е. должно быть что-то типа (Square = 'xxx') and (CentrMassX = 18) and (CentrMassY = 34)


я   (2011-10-03 21:08:00) [5]

'(Square = Square) and (CentrMassX = xc) and (CentrMassY = yc)';

тут он ругается что xc не есть поле ДатаСета, из чего можно заключить, что Square=Square- True. Но вопрос остается прежним, как задать множественный фильтр и чтобы он xc,yc и Square считал за переменные а не поля? вопрос на 3 секунды для тех кто в курсе.....


Ega23   (2011-10-03 13:04:00) [6]


> по моим ощущениям Square это имя поля в таблице, а второй
> раз это имя переменной


По моим ощущениям Square = Square- это True.
Не, я конечно могу ошибаться, но всё-таки по моим ощущениям - True.


я   (2011-10-03 13:00:00) [7]

помогли бы материально ) че то никак не могу понять как расставить знаки препинания. по моим ощущениям Square это имя поля в таблице, а второй раз это имя переменной которой оно дожно быть равно....


Ega23   (2011-10-03 11:15:00) [8]

Square = Square
На душе стало немножечко тревожно


icWasya   (2011-10-03 09:25:00) [9]

Разберись, где надо ставить кавычки. Фильтр это одна строка, внутри которой должно быть логическое выражение.


Наверх

Титульная страница Поиск, карта сайта Написать письмо