Хелпикс

Главная

Контакты

Случайная статья





FILTER([<o6лacть>]). Последовательный поиск. Начальный поиск. Продолжение поиска. CONTINUE



• FILTER([<o6лacть>])

В FoxPro имеются разнообразные команды поиска записей, которые реализуют как последовательный, так и ускоренный алгоритмы. При последовательном поиске выполняется сплошной перебор записей файла базы данных до установки указателя записей на искомую запись.

 

2. Последовательный поиск

Начальный поиск

Следующая команда осуществляет последовательный поиск одной самой первой записи в базе данных, удовлетворяющей заданному FOR-условию, среди записей, находящихся в заданных границах, и до тех пор, пока соблюдается WHILE-условие (если есть).

• LOCATE [<границы>] FOR <условие> [WHILE <условие>] В случае, если границы и WHILE-условие отсутствуют, поиск ведется во всем файле, начиная с первой записи. При успешном поиске указатель записей устанавливается на найденную запись, функция RECNO() равна номеру этой записи, а функция FOUND(), оценивающая результат поиска, возвращает значение "Истина" (.Т.). При неудачном поиске функция RECNO() равна числу записей в базе плюс 1, FOUND()=.F., а функция достижения конца файла EOF() возвращает .Т.

Продолжение поиска

Команда, которая продолжает поиск записей, начатый ранее командой LOCATE, приведена ниже:

• CONTINUE

которая эквивалентна команде LOCATE REST FOR <условие> [WHILE <условие>]. Если командой LOCATE или CONTINUE не было найдено нужных записей, указатель записей устанавливается на нижнюю границу поиска (если она введена в команде) или на конец файла (EOF()=.T.).

Результатом применения команд (если SET TALK ON) являются сообщения о номере каждой найденной записи или/и достижении границы поиска.

Пример. В файле KADR (его содержимое представлено при описании команды BROWSE) необходимо найти все записи о женщинах, т.е. те записи, в которых POL='Ж'. Вводимые команды и реакции системы изображены ниже (найдены записи с номерами 3 и 5).

SET TALK ON

USE kadr

LOCATE FOR ро1='Ж'

Record = 3 (Запись 3) CONTINUE

Record = 5 (Запись 5) CONTINUE

End of Locate scope. (Конец границы поиска)

Кроме рассмотренных команд имеется полезная функция поиска



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.