Создает новый файл на основе содержимого выбранной в данный момент таблицы.
COPY TO FileName [DATABASE DatabaseName [NAME LongTableName]] [FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton] [Scope] [FOR lExpression1] [WHILE lExpression2] [ [WITH] CDX ] | [ [WITH] PRODUCTION ] [NOOPTIMIZE] [ [TYPE] [ FOXPLUS | FOX2X | DIF | MOD | SDF | SYLK | WK1 | WKS | WR1 | WRK | CSV | XLS | XL5 | DELIMITED [ WITH Delimiter | WITH BLANK | WITH TAB | WITH CHARACTER Delimiter ] ] ] [AS nCodePage] |
Параметры
- FileName
-
Задает имя нового создаваемого файла. Если вы указали имя файла без расширения, COPY TO назначит ему расширение, принятое по умолчанию для файлов заданного типа. Если вы не указали тип файла, COPY TO оздает новую таблицу Visual FoxPro и назначает этому файлу расширение по умолчанию .dbf.
- DATABASE DatabaseName
-
Определяет базу данных, в которую добавляется новая таблица.
- NAME LongTableName
-
Определяет длинное имя для новой таблицы. Длинные имена могут содержать до 128 символов и могут использоваться вместо коротких имен файлов в базе данных.
- FIELDS FieldList
-
Определяет, какие поля копировать в новый файлу. Если вы опустите FIELDS FieldList, все поля будут скопированы в файл. Если создаваемый файл не является таблицей, memo поля не будут скопированы в новый файл, даже если имена memo полей включены в cписок полей.
- FIELDS LIKE Skeleton
-
Указывает, что в новый файл будут включены только те поля из оригинальной таблицы, которые соответствуют шаблону Skeleton.
- FIELDS EXCEPT Skeleton
-
Определяет, что все поля кроме тех, которые соответствуют шаблону Skeleton будут включены в новый файл.
- Scope
-
Задает диапазон записей, копируемых в файл. Копируются только записи, попадающие в указанный диапазон. Он может задаваться предложениями: ALL, NEXTnRecords, RECORDnRecordNumber, и REST. Подробнее о предложениях диапазона смотрите Выражение Scope.
- FOR lExpression1
-
Определяет, что COPY TO копирует только те записи, для которых логическое условие lExpression1 вычисляется в истину (.T.). Используйте предложение FORlExpression1 для условного копирования только нужных записей.
- WHILE lExpression2
-
Задает условие, согласно которому записи копируются, пока значение логического выражения lExpression2 остается равным "истине" (.T.).
- [WITH] CDX | [WITH] PRODUCTION
-
Создает для новой таблицы файл структурного индекса, идентичный файлу структурного индекса существующей таблицы. Теги и выражения индекса из исходного файла структурного индекса копируются в новый файл структурного индекса. Предложения CDX и PRODUCTION эквивалентны. Однако, не включайте предложения CDX или PRODUCTION если вы копируете в файл неявлюющийся новой таблицей Visual FoxPro.
- NOOPTIMIZE
-
Блокирует оптимизацию команды COPY TO по технологии Rushmore. Для получения дополнительной информации, смотрите Команда SET OPTIMIZE and Использование оптимизации запросов Rushmore для ускорения доступа к данным.
- TYPE
-
Задает тип файла, если создаваемый файл не является таблицей Visual FoxPro. Хотя задавать тип файла нужно обязательно, ключевое слово TYPE можно опустить.
- FOXPLUS
-
Memo-файлы Visual FoxPro имеют структуру, отличную от структуры memo-файлов FoxBASE+™. Если исходная таблица Visual FoxPro содержит memo-поле, включите предложение FOXPLUS , чтобы создать таблицу, которую можно будет использовать в FoxBASE+. Memo-поле Visual FoxPro не может содержать двоичные данные, поскольку FoxBASE+ не поддерживает двоичные данные в memo-полях.
- FOX2X
-
Создает новую таблицу, которую можно открывать в предыдущих версиях FoxPro (версии 2.0, 2.5, и 2.6).
Для полей типа Numeric, Float, Integer, Double и Currency значения NULL из исходной таблицы преобразуются в нули в новой таблице. Для остальных типов полей значения NULL исходной таблицы преобразуются в новой таблице в пустые значения. Подробнее о пустых значениях смотрите Функция ISBLANK( ).
В следующей таблице приводится список типов полей Visual FoxPro, которые преобразуются в новой таблице в другие типы полей при наличии параметра FOX2X.
Тип поля Visual FoxPro Тип поля FoxPro 2.x Blob
Memo
Currency
Float
DateTime
Date
Double
Float
Integer
Numeric
Varbinary
Memo
Varchar
Memo
- DIF
-
Создает файл VisiCalc® .dif (Data Interchange Format). Поля таблицы Visual FoxPro становятся векторами (столбцами), а записи становятся кортежами (строками). Новому файлу назначается расширение имени .dif , если вы не указали иное расширение в аргументе FileName.
- MOD
-
Создает файл Microsoft Multiplan версии 4.01. Новому файлу Microsoft Multiplan назначается расширение имени .MOD, если вы не задали иное расширение.
- SDF
-
Создает файл формата SDF (System Data Format). Файл SDF представляет собой текстовый ASCII-файл, записи которого имеют фиксированную длину и завершаются возвратом каретки и переводом строки. Поля не ограничиваются. Файлу SDF назначается расширение имени .TXT, если вы не задали иное расширение. Установка SET CENTURY игнорируется при создании SDF файлов командой COPY TO.
Если файлы SDF включают данные типа date, то они должны быть в формате YYYYMMDD для достижения эффективного обратного преобразования в таблицы Visual FoxPro.
Если информация типа date сохранена в неоднозначном формате, вы должны удостовериться, что даты находятся в формате YYYYMMDD прежде, чем вы выполняете операцию COPY TO.
- SYLK
-
Создает файл обмена типа SYLK (Symbolic Link). Файлы SYLK используются в Microsoft MultiPlan. Каждое поле из текущей выбранной таблицы становится столбцом в электронной таблице, а каждая запись становится строкой. Имена файлов SYLK не имеют расширений.
- WK1
-
Создает файл электронной таблицы Lotus® 1-2-3® версии 2.x. Каждое поле текущей выбранной таблицы становится столбцом электронной таблицы, а каждая запись становится строкой. Новой электронной таблице назначается расширение имени файла .wk1.
- WKS
-
Создает файл электронной таблицы Lotus 1-2-3 версии 1a. Каждое поле текущей выбранной таблицы становится столбцом электронной таблицы, а каждая запись становится строкой. Новой электронной таблице назначается расширение имени файла .WKS.
- WR1
-
Создает файл электронной таблицы Lotus Symphony® версии 1.1 или 1.2. Каждое поле текущей выбранной таблицы становится столбцом электронной таблицы, а каждая запись становится строкой. Новой электронной таблице назначается расширение имени файла .WR1.
- WRK
-
Создает файл электронной таблицы Lotus Symphony версии 1.0. Каждое поле текущей выбранной таблицы становится столбцом электронной таблицы, а каждая запись становится строкой. Новой электронной таблице назначается расширение имени файла .WR1.
- CSV
-
Создает файл значения в котором разделены запятой. В файле CSV первая строка - имена полей, следующие строки - значения полей разделенные запятыми.
- XLS
-
Создает файл электронной таблицы Microsoft Excel версии 2.0. Каждое поле текущей выбранной таблицы становится столбцом электронной таблицы, а каждая запись становится строкой. Новой электронной таблице назначается расширение имени файла .XLS, если вы не задали иное расширение.
Note Хотя вы и можете экспортировать максимум 65,535 строк, включая одну строку, зарезервированную для заголовка полей, версии Excel ранее чем 8.0 (Excel 97) отображают только первые 16,384 строк и не могут импортировать файлы, содержащие больше чем 32,767 строки.
- XL5
-
Создает файл электронной таблицы Microsoft Excel версии 5.0. Каждое поле текущей выбранной таблицы становится столбцом электронной таблицы, а каждая запись становится строкой. Новой электронной таблице назначается расширение имени файла .XLS, если вы не задали иное расширение.
Note Хотя вы и можете экспортировать максимум 65,535 строк, включая одну строку, зарезервированную для заголовка полей, версии Excel ранее чем 8.0 (Excel 97) отображают только первые 16,384 строк и не могут импортировать файлы, содержащие больше чем 32,767 строки.
- DELIMITED
-
Создает файл с разделителями; это текстовый ASCII-файл, в котором каждая запись заканчивается возвратом каретки и переводом строки. По умолчанию в качестве разделителя полей используется запятая. Поскольку запятые могут входить в состав символьных данных, символьные поля дополнительно разделяются двойными кавычками.
Вновь создаваемым файлам типа DELIMITED назначается расширение имени .TXT, если вы не задаете иного расширения.
- DELIMITED WITH Delimiter
-
Создает файл с разделителями, в котором символьные поля разделяются символом, отличным от кавычек. Этот символ задается аргументом Delimiter.
- DELIMITED WITH BLANK
-
Создает файл с разделителями, в котором поля разделяются не запятыми, а пробелами.
- DELIMITED WITH TAB
-
Создает файл с разделителями, в котором поля разделяются не запятыми, а табуляторами.
- DELIMITED WITH CHARACTER Delimiter
-
Creates a delimited file with all fields enclosed by the character specified with Delimiter. If Delimiter is a semicolon (;), used in Visual FoxPro to indicate command line continuation, enclose the semicolon in quotation marks. You can also specify the BLANK and TAB keywords for Delimiter.
You can combine the WITH Delimiter clause with the WITH CHARACTER clause. For example, the following command creates a text file with character fields enclosed by underscores and all fields delimited from each other with semicolons:
Copy Code COPY TO mytxt.txt DELIMITED WITH _ WITH CHARACTER ';'
- AS nCodePage
-
Задает кодовую страницу для таблицы или файла, создаваемого командой COPY TO. Visual FoxPro копирует содержимое выбранной в данный момент таблицы и в процессе копирования автоматически преобразует данные в кодовую таблицу, указанную для новой таблицы или файла. Если это возможно, Visual FoxPro помечает вновь созданную таблицу или файл указанной кодовой страницей.
Если опустить предложение AS nCodePage, e, вновь созданная таблица или файл преобразуется в текущую кодовую страницу Visual FoxPro.
Remarks
Шаблон Skeleton поддерживает групповые символы. Например, чтобы скопировать все поля, которые начинаются с символов A и P, используйте следующее:
Copy Code | |
---|---|
COPY TO mytable FIELDS LIKE A*,P* |
Предложение LIKE может использоваться в комбинации с предложением EXCEPT:
Copy Code | |
---|---|
COPY TO mytable FIELDS LIKE A*,P* EXCEPT PARTNO* |
Технология Rushmore допускает оптимизацию COPY TO с предложением FOR lExpression1 если lExpression1 является оптимизируемым выражением. Для повышения производительности рекомендуется пользоваться в предложении FOR lExpression1 оптимизируемым выражением. Подробнее о выражениях, оптимизируемых по технологии Rushmore, смотрите Команда SET OPTIMIZE и Использование оптимизации запросов Rushmore для ускорения доступа к данным.
Если установлен порядок сортировки в индексе, записи копируются в порядке сортировки индекса.
Если в качестве nCodePage вы задали кодовую страницу, которая не поддерживается, Visual FoxPro генерирует сообщение об ошибке. Вы можете использовать функцию GETCP( ) для nCodePage чтобы отобразить диалоговое окно Code Page и там задать кодовую страницу для создаваемой таблицы или файла.
Команда COPY TO сохраняет автоувеличивающиеся настройки кроме следующих условий:
-
Когда cписок полей, определенный, используя COPY TO...FIELDS не включает поля которая используют автоувеличение.
-
Когда используется параметр TYPE в команде COPY TO, независимо от типа, определенного в соответствии с пунктом.
Результирующяя таблица начинает увеличивать щетчик начиная с значения NextValue исходной таблицы. Например, предположим что NextValue в исходной таблице 1000 со значением Step 1. Тогда первая строка результирующей таблицы будет иметь значение 1001; вторая строка 1002, и так далее.
Используя команду COPY TO, следует знать, что Команда SET VARCHARMAPPING будет воздействовать на вычисляемые поля (символьные выражения переменной длины) установленные командой SET FIELDS.
Пример
В следующем примере открывается таблица customer и следующие три записи копируются в новый файл данных Temp.txt типа DELIMITED.
Copy Code | |
---|---|
CLOSE DATABASES OPEN DATABASE (HOME(2) + 'Data\testdata') USE Customer && Opens Customer table. COPY NEXT 3 TO Temp TYPE DELIMITED WAIT WINDOW 'This is the delimited text file' NOWAIT MODIFY FILE Temp.txt DELETE FILE Temp.txt |