Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИОСУ.doc
Скачиваний:
33
Добавлен:
19.03.2015
Размер:
14.55 Mб
Скачать

32. Методы поиска записей в наборе данных. Методы FindKey и FindNearest(инкрементный поиск записей).

Поиск записи, удовлетв заданным условиям, означает переход к этой записи. Поиск по индексированным полям происходит быстрее. Кроме того ряд методов поиска может работать только с индексированными полями. Для поиска данных можно использовать методы:

FindFirst – поиск первого подходящего значения. FindLast – поиск последнего подходящего значения

FindNext – поиск следующего подходящего значения. FindPrior – поиск записи предшествующей искомой

Locate – для поиска по одному или нескольким полям. Lookup – просмотр не изменяет положение курсора, возвращает значение требуемых полей найденной записи

Поисковые признаки задаются в списке параметров методов.

Для поиска методом Lookup и Locate поля для поиска могут быть неиндексированными.

Последовательный поиск можно организовать с помощью метода

FindNearest. При этом поиск производится по мере ввода поискового признака.

Метод FindKey проводит поиск записи по заданным в параметре значениям ключевых полей текущего индекса набора данных. В случае успеха курсор набора данных устанавливается на найденной записи, а метод возвращает значение True, в противном случае — False.

Если индекс состоит из нескольких полей, значения для поиска записываются в виде множества, причем отсутствующие значения приравниваются к Null.

Поиск может выполняться по первичному ключу (главному индексу) или

по вторичному индексу. Перед выполнением поиска должен быть задан нужный индекс. Для выполнения поиска используются методы класса TTable:

SetKey – перевод таблицы в режим поиска; GotoKey – выполнение поиска;

GotoNearest – выполнение поиска при частичном совпадении;

FindKey – задание критерия и выполнение поиска;

FindNearest – задание критерия и выполнение поиска при частичном совпадении.

Последовательность действий при организации поиска:

− задать индекс через свойство IndexName или IndexFieldName;

− перейти в режим поиска методом SetKey;

− задать искомое значение поля;

− выполнить поиск методом

Процедуры FindKey и FindNearest принимают в качестве параметра искомые значения индексных полей.

Пусть данные в таблице отсортированы по полю Tovar (диван, кресло, кровать, сервант, стенка, стол компьютерный, стол обеденный, стол раздвижной, стул, шкаф). Значение для поиска вводится в однострочный редактор Edit1. Для реализации поиска будем использовать команду:

Table1.FindNearest([Edit1.text]);

Если в Edit1 ввели символ ’c’, то результатом применения метода будет перемещение курсора на первую строку, начинающуюся на ’c’ – сервант.

Если затем в редакторе Edit1 добавить символ ’т’, то курсор сместится на первую запись, начинающуюся на ’cт’ (стенка).

Метод FindKey (const KeyValues: array of const) :Boolean выполняет поиск в наборе данных Table той записи, значения полей которой совпадает со значениями, указанными параметром KeyValues. Список полей для поиска не задается, а используются индексные поля в соответствии с текущим индексом. Если поиск завершился успешно, то найденная запись становится текущей, а метод возвращает значение True.

Метод FindNerarest производит поиск значений полей записей набора данных Table, которые частично совпадают со значениями, заданными для поиска. Вместо метода можно использовать комбинацию методов SetNearest, EditNearest, GotoNearest, работа с которыми аналогична работе с соответствующими методами поиска, требующими точного соответствия значений полей и значений, заданными для поиска.