Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 19.04.2007, 13:58   #1
marakuz
Новичок
Джуниор
 
Регистрация: 19.04.2007
Сообщений: 1
По умолчанию Фильтровать в ClientDataSet

Не могу отфильтровать.

даю команду
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientDataSet1.Filter :='''Имя'' = ''Иван''';
end;

Грид меняется на совершено пустой с одной строкой...
Где ошибка и как правильно фильтровать - сортировать?

Внимание: Я - чайник!
marakuz вне форума
Старый 08.03.2009, 02:45   #2
A-XA
Новичок
Джуниор
 
Регистрация: 20.06.2008
Сообщений: 1
По умолчанию

ClientDataSet1.Filter :='''[Имя] = Иван''';
по моему должно быть так
A-XA вне форума
Старый 08.03.2009, 10:33   #3
Антон Ю.Б.
Форумчанин
 
Регистрация: 03.01.2009
Сообщений: 116
По умолчанию

marakuz, сейчас проверил, работает вот так:

ClientDataSet.Filtered:=False;
ClientDataSet.Filter:='Имя=''Иван'' ';
ClientDataSet.Filtered:=True;

Можно ClientDataSet.Filter:='[Имя]=''Иван''';, но это по идее для имен полей из нескольких слов.
Антон Ю.Б. вне форума
Старый 08.03.2009, 12:53   #4
ArtInt
Форумчанин
 
Аватар для ArtInt
 
Регистрация: 06.03.2009
Сообщений: 583
По умолчанию

Лучше писать так, чтобы не путаться с количеством апострофов(двойных кавычек), использовать функцию quotedstr:
ClientDataSet.Filtered:=False;
ClientDataSet.Filter:='Имя='+quoted str('Иван');
ClientDataSet.Filtered:=True;

Для того, чтобы не использовать квадратные скобки для имени лучше использовать нижнее подчеркивание вместо пробела, а также имена писать английскими буквами.
Не стыдно чего-то не знать, стыдно не стремиться к знаниям.
ArtInt вне форума
Старый 02.11.2010, 22:11   #5
apollon476
 
Регистрация: 02.11.2010
Сообщений: 3
По умолчанию

Цитата:
Сообщение от Антон Ю.Б. Посмотреть сообщение
marakuz, сейчас проверил, работает вот так:

ClientDataSet.Filtered:=False;
ClientDataSet.Filter:='Имя=''Иван'' ';
ClientDataSet.Filtered:=True;

Можно ClientDataSet.Filter:='[Имя]=''Иван''';, но это по идее для имен полей из нескольких слов.
Спасибо вам большое!ваша тема мне помогла!но я не могу понять как сделать чтоб он считывал с переменнои или с edit типа так как сделать
ClientDataSet.Filter:='[Имя]='edit1.text''
apollon476 вне форума
Старый 02.11.2010, 22:19   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Отменяем реанимацию...
mihali4 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает запрос через Clientdataset nicki БД в Delphi 1 17.09.2007 17:08