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

COPY STRUCTURE EXTENDED TO FileName   
   [DATABASE DatabaseName [NAME LongTableName]] [FIELDS FieldList]

Параметры

FileName

Указывает имя файла создаваемой таблицы структуры.

DATABASE DatabaseName

Указывает имя базы данных, в которую будет добавления новая таблица.

NAME LongTableName

Указывает длинное имя для новой таблицы. Длинные имена могут содержать до 128 символов и могут быть использованы вместо коротких имен файлов в базе данных.

FIELDS FieldList

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

Expand imageПримечания

Информация о каждом поле в текущей выбранной таблице копируется в новую запись в новой таблице. Структура новой таблицы имеет фиксированный формат и состоит из 18 полей. В приведенной ниже таблице перечислены имена полей и их содержимое.

Поле Тип поля Содержимое

FIELD_NAME

Character

Имена полей из выбранной таблицы (шириной в 128 символов)

FIELD_TYPE

Character

Типы полей:

Blob

Character

Currency

Date

DateTime

Double

Float

General

Integer

Logical

Memo

Numeric

Varchar and Varchar (Binary)

Varbinary

FIELD_LEN

Numeric

Ширина полей

FIELD_DEC

Numeric

Число десятичных цифр в численных полях

FIELD_NULL

Logical

Поле поддерживает значение null

FIELD_NOCP

Logical

Не допускается трансляция кодовой страницы (только для полей типа character и memo)

FIELD_DEFA

Memo

Значения полей по умолчанию

FIELD_RULE

Memo

Правила проверки для поля

FIELD_ERR

Memo

Текст сообщения об ошибке при несоблюдении правила проверки поля

TABLE_RULE

Memo

Правило проверки таблицы

TABLE_ERR

Memo

Текст сообщения об ошибке при несоблюдении правила проверки таблицы

TABLE_NAME

Character

Длинное имя таблицы (имеется только в первой записи)

INS_TRIG

Memo

Выражение триггера вставки (имеется только в первой записи)

UPD_TRIG

Memo

Выражение триггера обновления (имеется только в первой записи)

DEL_TRIG

Memo

Выражение триггера удаления (имеется только в первой записи)

TABLE_CMT

Memo

Комментарий к таблице (имеется только в первой записи)

FIELD_NEXT

Numeric

Следующее значение для поля с AUTOINC, если это разрешено.

FIELD_STEP

Numeric

Шаг увеличения для поля AUTOINC. Если значение равно 0, автоувеличение значения поля не разрешено.

Ширина поля FIELD_NAME в предыдущих версиях Visual FoxPro, FoxPro for Windows и FoxPro for MS-DOS равнялась 10-ти символам. Для использования команды CREATE FROM с таблицами структур, созданных с помощью команды COPY STRUCTURE EXTENDED в Visual FoxPro 5.0 и более ранних версий, вы должны изменить ширину поля до значения FIELD_NAME в 10 символов длиной. Некоторые типы полей не поддерживаются в Visual FoxPro 3.0 и более ранних версий.

Если поле в исходной таблице использует автоувеличние значения, FIELD_STEP должен хранить ненулевое значение.

Вы можете модифицировать вновь созданную таблицу и использовать команду CREATE FROM для создания новой таблицы с другой структурой. Команды COPY STRUCTURE и CREATE FROM позволяют вам программно изменить структуру таблицы.

Expand imageПример

Приведенный ниже пример отображает структуру таблицы Orders, копирует расширенную информацию о ее структуре в таблицус Temp, выводит таблицу Temp в окно просмотра, создает таблицу с именем Backup из Temp, и отображает структуру таблицыBackup.

  CopyCode imageСкопировать код
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'Data\testdata')
USE Orders  && Открывает таблицу Orders.
CLEAR
DISPLAY STRUCTURE

WAIT WINDOW 'Structure of the Orders table' NOWAIT
COPY STRUCTURE EXTENDED TO Temp
USE Temp
WAIT WINDOW 'The Temp table - 1 row per field in orders' NOWAIT
BROWSE
CREATE Backup FROM Temp
USE Backup
DISPLAY STRUCTURE
WAIT WINDOW 'Backup.dbf has the same structure as Orders' NOWAIT
USE
DELETE FILE Temp.dbf
DELETE FILE Backup.dbf

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