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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.09.2011, 23:44   #1
AlienNation
Пользователь
 
Регистрация: 22.08.2010
Сообщений: 85
По умолчанию Delphi! ClientDataSet запрос (фильтр)

есть таблица, в ней поле, допустим name, в ней записи:
Alex
Max
Vlad
Vova
Max
Max
Alex
Vlad
Mik
Как сделать фильтр чтобы выбрал каждое имя только 1 раз?
AlienNation вне форума Ответить с цитированием
Старый 01.09.2011, 23:49   #2
mss
Заблокирован
 
Регистрация: 27.05.2010
Сообщений: 1,099
По умолчанию

Никак.
CDS не занимается запросами - он взаимодействует с провайдерами, которые собственно и занимаются запросами.
mss вне форума Ответить с цитированием
Старый 01.09.2011, 23:56   #3
AlienNation
Пользователь
 
Регистрация: 22.08.2010
Сообщений: 85
По умолчанию

Цитата:
Сообщение от mss Посмотреть сообщение
Никак.
CDS не занимается запросами - он взаимодействует с провайдерами, которые собственно и занимаются запросами.
Код:
clientDataSet1.Filter:='cnlTime >='+QuotedStr(TimeToStr(rTime-1.5/24))+' and cnlTime <='+ QuotedStr(timeToStr(rTime+1.5/24));
пример из моей программы фильтра ClientDataSet, для тех у кого занимается запросами.
AlienNation вне форума Ответить с цитированием
Старый 02.09.2011, 00:17   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

1. Используйте в запросе DISTINCT или GROUP BY
2. Для любителей извращенных фильтов на ClientDataSet при наличии в выборке уникального ключа (Id) можно сделать так:
- Создаем клон ClientDataSet-а с индексом по полям Name и Id
- в ClientDataSet-е делаем OnFilterRecord
Код:
procedure TForm1.ClientDataSetFilterRecord(DataSet: TDataSet; var Accept: Boolean);
begin
  Accept:=Clone.FindKey([ClientDataSet.FieldByName('Name').AsString]) and
    (Clone.FieldByName('Id').AsInteger=ClientDataSet.FieldByName('Id').AsInteger);
end;
Цитата:
Пример из моей программы фильтра ClientDataSet, для тех у кого занимается запросами.
ClientDataSet 100% не занимается запросами, Filter это далеко не запрос, а фильтровка выбранной информации на клиенте
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 02.09.2011 в 00:20.
Аватар вне форума Ответить с цитированием
Старый 02.09.2011, 00:29   #5
AlienNation
Пользователь
 
Регистрация: 22.08.2010
Сообщений: 85
По умолчанию

да, изв. я не корректно вопрос задал, слово запрос не надо было
AlienNation вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi 2010 работа с ClientDataSet Isaev84 БД в Delphi 0 15.10.2010 10:01
Запрос к ClientDataSet и БД *.CDS chandrasecar БД в Delphi 5 09.08.2010 18:35
Запрос или Фильтр wolfik0 БД в Delphi 3 02.05.2008 04:42
Своеобразный запрос или фильтр ГОСЕАН БД в Delphi 5 27.12.2007 14:52
не работает запрос через Clientdataset nicki БД в Delphi 1 17.09.2007 17:08