Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизКак организовать циклический поиск по таблице? Найти похожие ветки
← →
Anics (2004-03-02 10:32) [0]Пусть есть таблица сотрудников, и там 10 человек с фамилией "Иванов". Как можно организовать поиск таким образом, чтобы при первом поиске позиционировался первый "Иванов", при втором - второй "Иванов" и так далее по циклу?
← →
Alex_Bredin © (2004-03-02 10:35) [1]создайте индекс по этому полю
← →
Anics (2004-03-02 10:36) [2]Индекс существует, что дальше?
← →
malkolinge © (2004-03-02 10:39) [3]Если на клиенте - наложи фильтр. Name = "Иванов".
← →
VAleksey © (2004-03-02 10:46) [4]1) Навигация по условиям фильтра в неотфильтрованном НД. DataSet.FindFirst, DataSet.FindNext. Фильтр можно установить с помощью св-в Filter или события OnFilterRecord - DataSet - a. (Советую OnFilterRecord)
2) Сделать запрос и получить списко идентификаторов (ID) для всех Ивановых в таблице. Затем простой Locate по значениям из этого списка.
3) Взять dbGridEh где реадизована эта возможность.
← →
Voland2000 (2004-03-02 12:58) [5]Не знаю как вы, а я сделал по своему:
1)Проходим каждую запись таблицы.
2)Функцией pos() ищем нужную строку.
← →
SPIRIT © (2004-03-02 13:01) [6]
> Voland2000 (02.03.04 12:58) [5]
и по времени это раз в 5 долльше чем [4] .
← →
Anatoly Podgoretsky © (2004-03-02 13:11) [7]Anics (02.03.04 10:36) [2]
Дальше два оптимальных варианта
1. фильтр по фамилии
2. Активируем индекс, Locate и далее последовательный поиск (Next) пока фамилия равна.
3. неоптимальный вариант, Locate и далее последовательный поиск до конца набора с проверкой на совпадение
← →
Alex_Bredin © (2004-03-02 13:35) [8]в добавление к
> Anatoly Podgoretsky © (02.03.04 13:11) [7]
Лучше использовать SetKey,GotoNearest вместо Locate(для индексированных полей)
← →
Anatoly Podgoretsky © (2004-03-02 13:36) [9]Или GotoNearest или FindNearest в зависимости от индекса
← →
Соловьев © (2004-03-02 13:46) [10]http://delphimaster.net/view/3-1076933565/
посмотреть то что я предложил
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.047 c