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

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

Как организовать циклический поиск по таблице? [D5, Paradox]


Anics ©   (2004-03-02 10:32:00) 

Пусть есть таблица сотрудников, и там 10 человек с фамилией "Иванов". Как можно организовать поиск таким образом, чтобы при первом поиске позиционировался первый "Иванов", при втором - второй "Иванов" и так далее по циклу?


Соловьев   (2004-03-02 13:46:00) [1]

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1076933565&n=1
посмотреть то что я предложил


Anatoly Podgoretsky   (2004-03-02 13:36:00) [2]

Или GotoNearest или FindNearest в зависимости от индекса


Alex_Bredin   (2004-03-02 13:35:00) [3]

в добавление к

> Anatoly Podgoretsky ©   (02.03.04 13:11) [7]


Лучше использовать SetKey,GotoNearest вместо Locate(для индексированных полей)


Anatoly Podgoretsky   (2004-03-02 13:11:00) [4]

Anics   (02.03.04 10:36) [2]
Дальше два оптимальных варианта
1. фильтр по фамилии
2. Активируем индекс, Locate и далее последовательный поиск (Next) пока фамилия равна.
3. неоптимальный вариант, Locate и далее последовательный поиск до конца набора с проверкой на совпадение


SPIRIT   (2004-03-02 13:01:00) [5]


> Voland2000   (02.03.04 12:58) [5]

и по времени это раз в 5 долльше чем [4] .


Voland2000   (2004-03-02 12:58:00) [6]

Не знаю как вы, а я сделал по своему:
1)Проходим каждую запись таблицы.
2)Функцией pos() ищем нужную строку.


VAleksey   (2004-03-02 10:46:00) [7]

1) Навигация по условиям фильтра в неотфильтрованном НД. DataSet.FindFirst, DataSet.FindNext. Фильтр можно установить с помощью св-в Filter или события OnFilterRecord - DataSet - a. (Советую OnFilterRecord)
2) Сделать запрос и получить списко идентификаторов (ID) для всех Ивановых в таблице. Затем простой Locate по значениям из этого списка.
3) Взять dbGridEh где реадизована эта возможность.


malkolinge   (2004-03-02 10:39:00) [8]

Если на клиенте - наложи фильтр. Name = 'Иванов'.


Anics   (2004-03-02 10:36:00) [9]

Индекс существует, что дальше?


Alex_Bredin   (2004-03-02 10:35:00) [10]

создайте индекс по этому полю


Наверх

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