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

GATHER FROM ArrayName | MEMVAR | NAME ObjectName
[FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton]
[MEMO]

Параметры

FROM ArrayName

Определяет массив, данные из которого замещают данные в текущей записи. Содержимое элементов массива, начиная с первого элемента, замещают содержимое соответствующих полей в записи таблицы. Содержимое первого элемента массива замещает первое поле в записи; содержимое второго элемента массива замещает второе поле в записи и т.д. Если массив имеет меньше элементов, чем полей в таблице, оставшиеся поля игнорируются. Если массив имеет больше элементов, чем полей в таблице, оставшиеся элементы массива игнорируются.
MEMVAR

Определяет переменные или массив, данные из которых копируются в текущую запись таблицы. Данные передаются таким образом, что значения переменных замещают значения в одноименных с переменными полях. Содержимое поля не замещается если переменная, имя которой совпадает с именем поля, отсутствует.
Подсказка:
Вы можете создавать переменные с именами полей таблицы включая опции MEMVAR или BLANK в команде SCATTER.

NAME ObjectName

Определяет объект, свойства которого имеют такие же имена, как поля в таблице. Содержимое каждого поля замещается значением свойства имя которого совпадает с именем этого поля. Содержимое поля не замещается, если свойство, имя которого совпадает с именем поля, отсутствует.
FIELDS FieldList

Определяет поля, содержимое которых замещается содержимым элементов массива или переменных. Содержимое поля будет замещено только в том случае, если оно присутствует в списке FieldList.
FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton

Вы можете выборочно замещать содержимое полей содержимым элементов массива или переменных включив фразу LIKE или EXCEPT или обе эти фразы. Если вы используете фразу LIKE Skeleton, Visual FoxPro заместит содержимое полей, названия которых будут соответствовать шаблону Skeleton. Если вы используете фразу EXCEPT Skeleton, Visual FoxPro заместит содержимое полей, названия которых не будут соответствовать шаблону Skeleton. Шаблон Skeleton поддерживает сокращения (* и ?). Например, для включения всех полей, названия которых начинаются на букву A и P, запишите:
  Скопировать код
GATHER FROM gamyarray FIELDS LIKE A*,P*
MEMO

Определяет что содержимое полей типа memo или Blob также будет замещаться содержимым элементов массива или переменных. Если вы опустите ключевое слово MEMO, поля типа memo и Blob будут пропускаться при работе команды GATHER. Поля типа General и picture всегда игнорируются в команде GATHER, даже если вы включите ключевое слово MEMO.

Пример

В этом примере команда GATHER используется для копирования данных в новую запись таблицы. После создания таблицы Test используется команда SCATTER, создающая набор переменных, имена которых совпадают с именами полей таблицы. Затем каждое поле получает значение и в таблицу добавляется новая пустая запись.

  Скопировать код
CREATE TABLE Test FREE ;
(Object C(10), Color C(16), SqFt n(6,2))
SCATTER MEMVAR BLANK
m.Object="Box"
m.Color="Red"
m.SqFt=12.5
APPEND BLANK
GATHER MEMVAR
BROWSE

Следующий пример показывает применение команды GATHER с фразой NAME для копирования данных в новую запись таблицы. После создания таблицы Test используется команда SCATTER, создающая набор переменных, имена которых совпадают с именами полей таблицы. Затем свойства объекта присваиваются переменным и в таблицу добавляется новая пустая запись.

  Скопировать код
CREATE TABLE Test FREE ;
(Object C(10), Color C(16), SqFt n(6,2))

SCATTER NAME oTest BLANK
oTest.Object="Box"
oTest.Color="Red"
oTest.SqFt=12.5
APPEND BLANK
GATHER NAME oTest
RELEASE oTest
BROWSE

См.также