Обновляет содержимое полей значениями из массива переменных памяти..

REPLACE FROM ARRAY ArrayName [FIELDS FieldList] [Scope]
   [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]

Пврвметры

ArrayName

Задает имя массива, значения из которого замещают содержимое полей.

FIELDS FieldList

Указывает, что данными из массива нужно заменять только поля, включенные в список FieldList. Если рабочая область не выбрана, то имена полей для такой таблицы должны предваряться псевдонимом таблицы.

Scope

Задает диапазон записей, замещаемых содержимым массива. Для команды REPLACE FROM ARRAY диапазоном по умолчанию является текущая запись (NEXT 1).

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

Диапазон задается следующими предложениями: ALL, NEXT nRecords, RECORD nRecordNumber, и REST. Подробнее о предложениях диапазона смотрите Выражения диапазонов.

FOR lExpression1

Указывает, что поля заменяются только в тех записях, для которых выражение lExpression1 имеет значение "истина" (.T.). Предложение FOR позволяет проводить условную замену записей, отфильтровывая ненужные записи. Замена производится в каждой записи, для которой lExpression1 имеет значение "истина" (.T.), или пока не кончится массив.

Технология Rushmore оптимизирует операцию REPLACE FROM ARRAY FOR, если lExpression1 является оптимизируемым выражением. В целях повышения производительности используйте в предложении FOR оптимизируемое выражение.

Подробнее смотрите Команда SET OPTIMIZE и Использование оптимизации запросов Rushmore для ускорения доступа к данным.

WHILE lExpression2

Задает условие, в соответствии с которым поля в записях замещаются содержимым массива, пока значением логического выражения lExpression2 остается "истина" (.T.).

NOOPTIMIZE

Запрещает оптимизацию по технологии Rushmore.

Подробнее смотрите Команда SET OPTIMIZE и Использование оптимизации запросов Rushmore для ускорения доступа к данным.

Expand imageЗамечание

Команда REPLACE FROM ARRAY игнорирует memo-поля и поля типа General. Чтобы импортировать данные в эти поля, пользуйтесь командами GATHER и APPEND GENERAL.

Элементы массива, начиная с первого, замещают содержимое соответствующих полей записи. Первый элемент массива замещает первое поле записи, второй элемент массива замещает второе поле и т.д.

Если элементов в массиве меньше, чем полей в таблице, лишние поля игнорируются. Если в массиве больше элементов, чем полей в таблице, лишние элементы массива игнорируются.

NoteЗамечание

Если указатель записи установлен в конце файла в текущей рабочей области, а вы задаете поле в другой рабочей области, никакие замены не производятся.

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