Оператор WHILE вызывает исполнение команды на каждой записи, пока логическое выражение оценивается в true (.T.). После того, как выражение будет впервые оценено в false (.F.), исполнение команды прекращается, без попытки ее исполения на оставшихся записях. Это выражение обычно используется с таблицами, которые отсортированы или индексированы по полю (или полям), включенному в выражение WHILE. Например, в приведенном ниже примере производится перемещение по индексированной таблице для поиска первой записи, отвечающей условию, после чего исполняется команда REPLACE на тех записях, которые отвечают условию, определенному для WHILE.

  CopyCode imageСкопировать код
USE Mytable INDEX street
LOCATE FOR UPPER(street) = "MAIN"
REPLACE street WITH "Maine" WHILE UPPER(street) = "MAIN"

Вы можете использовать выражения Scope, FOR и WHILE в одной и той же команде Visual FoxPro. Например, приведенный ниже пример сохраняет новое значение в поле status нескольких записей.

  CopyCode imageСкопировать код
REPLACE ALL status WITH "Active" FOR total > 30 ;
   WHILE expd > {^1998/02/16}

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

В приведенной ниже таблице перечислены команды, в которых вы можете использовать оператор WHILE.

Команды, которые используют оператор WHILE

Expand imageСмотрите также