Поиск:

Ответ в темуСоздание новой темы Создание опроса
> О множественной фильтрации в BDE 
:(
    Опции темы
Johnny M
Дата 17.4.2005, 19:51 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Привет всем.
Столкнулся с такой проблемой. Допустим, из БД нужно выбрать все значения (например, сортировать поле Year со значением года выпуска)

Table1.Filter:='Year = '+QuotedStr('2005');

в таблице после этого останутся только записи со значением 2005 в этом поле. Все прекрасно - НО -

1) Как же работать с многочисленным выбором - не только по одному полю? (например, нужна сортировка по полю "год выпуска" такой то, по полю "месяц" такой то, по полю "день" такой то, ну и т.д.

Справляется ли с данным типом фильтрации свойсво Filter или нет?


Спасибо заранее
  Вверх
Pakshin A. S.
Дата 17.4.2005, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 5056
Регистрация: 16.2.2003

Репутация: 2
Всего: 61



Лично мне никогда не приходил в голову данный вопрос... я использую SQL... smile
PM   Вверх
offline
Дата 17.4.2005, 23:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: 7
Всего: 7



А "and" пробовал?
PM MAIL   Вверх
Johnny M
Дата 18.4.2005, 07:41 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(kirilllius @ 17.4.2005, 23:10)
А "and" пробовал?

пробовал. Не помогает. Может, снтаксис неправильный был? smile

Нужна ведь сортировка по первому значению, потом - из получившегося списка - вторая сортировка, потом - из того что останется - третья и т. д.

Может, верно - только SQL поможет?
  Вверх
DimW
Дата 18.4.2005, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1330
Регистрация: 24.2.2005
Где: Орёл

Репутация: 5
Всего: 44



В качестве альтернативы могу предложить вариант когда пользователь сам определяет по какому полю отсортировать данные:

Код

procedure TForm1.DBGridTitleClick(Column: TColumn);
var
st_FieldName:string;
begin
st_FieldName:=Column.FieldName;
Query.Close;
Query.SQL.Clear;
Query.SQL.Add('select * from New_Tovar');
Query.SQL.Add('Order By '+#39+st_FieldName+#39);
Query.Open;
end;


При клике на нужную пользоателю колонку DBGrid, выполняется выборка данных и сортировка по имени колонки на которую кликнул пользователь. Конечно лучше формировать запрос статически и передовать сортируемое поле как параметр.

Query, DataSource, DBGrid.
Добавлено @ 08:13
По нескольким полям можно отсортировать так:

SELECT
год_выпуска
,месяц
,день
FROM TABLE NAME
ORDER BY год_выпуска, месяц, день

Опять таки SQL...
PM MAIL ICQ   Вверх
offline
Дата 18.4.2005, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: 7
Всего: 7



Цитата
Нужна ведь сортировка по первому значению, потом - из получившегося списка - вторая сортировка, потом - из того что останется - третья и т. д.


Что-то я логики не вижу.

Ты хочешь
1.отсортировать по году
2. из получившегося набора отсортировать по месяцу
3. из получившегося набора отсортировать по дате

а не проще

сортировать по году и сортировать по месяцу и сортировать по дате

ведь результат наверное будет одинаковый

Код

  ADOTable1.DisableControls;
  ADOTable1.Filtered := False;
  ADOTable1.Filter := 'поле года = 2005 and поле месяца = 5 and поле дня = 1';
  ADOTable1.Filtered := True;
  ADOTable1.EnableControls;


Это сообщение отредактировал(а) kirilllius - 18.4.2005, 15:43
PM MAIL   Вверх
Akella
Дата 19.4.2005, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 29
Всего: 329



Цитата(Johnny @ 17.4.2005, 19:51)
1) Как же работать с многочисленным выбором - не только по одному полю? (например, нужна сортировка по полю "год выпуска" такой то, по полю "месяц" такой то, по полю "день" такой то, ну и т.д.


Так тебе нужна фильтрация или сортировка? Это две разные вещи.
Пользуйся поиском по форуму:

http://forum.vingrad.ru/index.php?showtopi...6&hl=фильтрация
http://forum.vingrad.ru/index.php?showtopi...9&hl=фильтрация
http://forum.vingrad.ru/index.php?showtopi...7&hl=фильтрация
http://forum.vingrad.ru/index.php?showtopi...1&hl=фильтрация
http://forum.vingrad.ru/index.php?showtopi...6&hl=фильтрация
http://forum.vingrad.ru/index.php?showtopi...1&hl=фильтрация

По поводу AND:
http://forum.vingrad.ru/index.php?showtopi...9&hl=фильтрация

Это сообщение отредактировал(а) dsergey - 19.4.2005, 08:46
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0482 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.