Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.01.15;
Скачать: CL | DM;

Вниз

Как реализовать автофильтр в БД?   Найти похожие ветки 

 
JazY   (2005-12-24 02:50) [0]

У меня 2 вопроса и оба навеяны Экселем. Вот в Экселе есть очень удобная функция автофильтр. Особую радость приносит эта функция поскольку в выпадающем списке видны только те строки, которые есть в таблице. Я пытаюсь реализовать подобную функцию, но на базе Делфи. Главная цель проводить фильтр по клиентам и при этом брать клиентов только тех, что указаны в таблице. Алгоритм примерно я придумал такой. При загрузке таблицы в Dbgrid все данные из поля "клиенты" заносятся в combobox. Затем из соmbobox убираются одинаковые строки и таким образом, остаются только те клиенты, которые есть в конкретной таблице и имена клиентов не дублируются. Вопросы в этой связи такие! Как быстро загрузить данные из поля "Клиенты" из всей таблицы и как удалить одинаковые строки?
Сейчас я использую такой код:

while  not adotable1.Eof do
begin
....
adotable1.Next;
end;

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

Очень нужен исходник.

Заранее благодарен.


 
TUser ©   (2005-12-24 06:39) [1]


> С его помощью я просматриваю всю таблицу и вытаскивыю из
> поля клиенты имена всех клиентов, которые есть в этой таблице,
>  но проблема в том, что получается очень долго. Нельзя ли
> ускорить процесс и как удалить одинаковые строки.

DBComboBox + проиндексируй базу по этому полю.


 
vidiv ©   (2005-12-24 08:03) [2]


> Затем из соmbobox убираются одинаковые строки и таким образом,
>  остаются только те клиенты, которые есть в конкретной таблице
> и имена клиентов не дублируются.

А не проще сделать подзапрос?

PS Хотя я не знаю, с базами на дельфи не работал никогда. Прошу прощения, если что


 
JazY   (2005-12-24 14:55) [3]


> DBComboBox + проиндексируй базу по этому полю.

А нельзя ли по подробней. Как проиндексировать? Программно? Из DBComboBox? Я же начинающий не могли бы вы по подробней объяснить?


 
Megabyte ©   (2005-12-24 17:57) [4]


> и как удалить одинаковые строки?

В запросе используй distinct(select distinct ...) - выбирается одна строка из одинаковых. Если я правильно понял, что тебе надо.



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

Текущий архив: 2006.01.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.06 c
9-1122972298
Max4
2005-08-02 12:44
2006.01.15
Координаты клика.


14-1134521031
за пиратство
2005-12-14 03:43
2006.01.15
Надо ли сажать в тюрьму за диски ? ( ГэБесия )


2-1135259435
kotbazilio
2005-12-22 16:50
2006.01.15
SQL запрос к MS ACCESS


8-1123533460
Zer0
2005-08-09 00:37
2006.01.15
FMOD 1.7 полностью портированный на дельфу


2-1135509190
SergProger
2005-12-25 14:13
2006.01.15
Копирование файлов с сервера