Распечатать страницу

Экспорт и импорт данных в Microsoft Visual FoxPro

« Назад

Команда

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]

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

Порядок копируемых записей определяется управляющим индексом (если он задан) таблицы-источника.

При копировании в DBF-таблицу базы данных сохраняется свойство AutoInc (если оно имеется в таблице-оригинале и если поле типа Integer (AutoInc) присутствует в списке копируемых полей). В таблице-приемнике значение первой записи поля типа Integer (AutoInc) определяется величиной NextValue таблицы-источника.

Опции и параметры (см. также табл. 1.7):

FileName – имя создаваемого файла. Если расширение не задано, то будет использовано расширение файла указанного в команде типа. Если тип файла не указан, то будет создана DBF-таблица.

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

NAME LongTableName – длинное имя новой таблицы.

FIELDS FieldList – список копируемых полей. Имена полей в списке разделяются запятыми. Если опция опущена, то копируются все поля. Если файл-приемник не является DBF-таблицей, то memo-поле не копируется, даже если оно присутствует в FieldList.

FIELDS LIKE Skeleton – маска, определяющая состав копируемых полей: копируются все поля, удовлетворяющие маске.

FIELDS EXCEPT Skeleton – маска, определяющая состав копируемых полей: копируются все поля, маске не удовлетворяющие.

Параметр Skeleton может содержать символы * и ?.

[WITH] CDX | [WITH] PRODUCTION – создает для новой таблицы структурный индексный файл, идентичный файлу таблицы-источника. Опция не должна использоваться, если файл-приемник – это не DBF-таблица.

TYPE – задает тип файла-приемника. Возможные типы описаны в табл. 15.10; в нее также включены и типы файлов, импортируемых командами APPEND FROM и IMPORT.

Таблица 15.10

Типы экспортируемых и импортируемых файлов

Тип

Описание типа файла

Расширение

FOXPLUS

FoxBASE+

DBF и DBT
для memo

FOX2X

FoxPro версий 2.0, 2.5 и 2.6

DBF; FPT
для memo

FW2

Импорт данных из файла Framework II

FW2

DIF

VisiCalc DIF-файл (Data Interchange Format)

DIF

MOD

Microsoft Multiplan® версии 4.01

MOD

PDOX

Paradox версии 3.5 или 4.0

DB

RPD

RapidFile версии 1.2.

RPD

SDF

SDF-файл (System Data Format) – ASCII-текстовый файл с фиксированной длиной записи с CR и LF. Установка SET CENTURY игнорируется. Формат даты в файле должен быть ГГГГММДД. Тогда от будет успешно загружен в таблицу VFP при выполнении команды APPEND FROM

TXT

SYLK

SYLK-файл (Symbolic Link); используется в Microsoft MultiPlan®; не имеют расширения

WK1

Лист Lotus 1-2-3 версии 2.x

WK1

WK3

Лист Lotus 1-2-3 версии 3.x

WK3

WKS

Лист Lotus 1-2-3 версии 1а

WKS

WR1

Lotus Symphony версии 1.1 или 1.2

WR1

WRK

Lotus Symphony версии 1.0

WRK

CSV

Текстовый файл, использующий в качестве разделителя запятую. Первой строкой файла являются имена полей таблицы-источника; значения символьных полей обрамляются двойными кавычками. Имена полей игнорируются, когда файл импортируется

CSV

XLS

Microsoft Excel версии 2.0

XLS

XL5

Microsoft Excel версии 5.0

XLS

XL8

Microsoft Excel 97

XLS

Замечание. Версии Microsoft Excel ниже 8.0 (Excel 97) отображают первые 16384 строк файла-приемника, хотя он может содержать до 65535 строк.

DELIMITED – создает ASCII-текстовый файл, в котором между значения копируемых полей помещен разделитель. По умолчанию в качестве разделителя используется запятая. Поскольку символьные значения полей могут иметь запятую, то автоматически значения символьных полей обрамляются двойными кавычками, например:

select Authors

copy to d:\a.txt delimited       && Переносим данные в файл d:\a.txt

Одна строка файла d:\a.txt:

1,"Личутин Владимир Владимирович",11.22.2004,

Если расширение не указано, то автоматически используется TXT.

WITH Delimiter – задает символ, употребляемый взамен двойных кавычек. Разделителем по-прежнему является запятая, например:

copy to d:\a.txt delimited with *

Одна строка файла d:\a.txt:

1,*Личутин Владимир Владимирович*,11.22.2004,

WITH BLANK – в качестве разделителя используется пробел, а не запятая.

WITH TAB – в качестве разделителя берется символ табуляции, например:

copy to d:\a.txt delimited with tab

WITH CHARACTER Delimiter – в качестве разделителя берется символ Delimiter. Если в качестве символа выбрана точка с запятой (символ, означающий продолжение строки VFP), то его нужно заключить в кавычки.

Опция может быть использована с опцией BLANK или TAB, или WITH Delimiter, например:

copy to d:\a.txt delimited with # with character ";"

Одна строка файла d:\a.txt:

1;#Личутин Владимир Владимирович#;11.22.2004;

AS nCodePage – задает кодовую страницу файла-приемника. Если опция опущена, то используется текущая кодовая страница. Если указана не поддерживаемая VFP кодовая страница, то генерируется ошибка.

Диалог выбора кодовой страницы открывается функцией GETCP( ). Текущая кодовая страница возвращается функцией CPCURRENT( ).

Команда

APPEND FROM FileName | ? [FIELDS FieldList] [FOR lExpression]
                   [[TYPE] DIF | FW2 | MOD | PDOX | RPD | SDF | SYLK | WK1 | WK3 | WKS
                   | WR1 | WRK | CSV | XLS | XL5 [SHEET cSheetName]
                   | XL8 [SHEET cSheetName] | [DELIMITED [WITH Delimiter
                  
| WITH BLANK | WITH TAB | WITH CHARACTER Delimiter]]]

                   [AS nCodePage]

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

Опции и параметры:

FileName – имя файла-источника данных. Если расширение не задано и отсутствует опция TYPE, то берется расширение DBF. Если опция TYPE имеется, то берется расширение, задаваемое по умолчанию для файлов указанного типа. Если опция TYPE отсутствует и файл-источник – это таблица VFP или таблица, созданная более ранними версиями FoxPro, то файл должен иметь расширение DBF.

При добавлении из таблицы VFP ее записи, имеющие пометку удаления, будут добавляться, если SET DELETED установлен в OFF; пометка удаления у добавленных записей будет отсутствовать.

Для импортирования данных dBASE IV необходимо до выполнения команды APPEND FROM открыть в VFP таблицу-источник, применив команду USE. На вопрос, нужно ли конвертировать файл, следует ответить Yes.

Для добавления из временного курсора, созданного SELECT – SQL, можно использовать функцию DBF( ), возвращающую имя таблицы. Например:

append from DBF('Cur')        && Добавляем из курсора Cur

FIELDS FieldList – список полей таблицы-приемника, в которые добавляются данные.

FOR lExpression – добавляются записи, удовлетворяющие логическому выражению lExpression.

TYPE – тип файла-источника данных. Опция TYPE обязательна, когда файл-источник не является таблицей VFP. Типы файлов описаны в табл. 15.10.

SHEET cSheetName – номер листа XLS-файла. Если опция опущена, то берется лист 1.

Смысл опции DELIMITED см. в описании команды COPY TO.

AS nCodePage – задает кодовую страницу файла-источника. Если опция опущена, то используется текущая кодовая страница. Если указана не поддерживаемая VFP кодовая страница, то генерируется ошибка.

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

Если SET CPDIALOG установлен в ON и для таблицы-источника не установлена кодовая страница, то появится диалог выбора кодовой страницы.

Если nCodePage = 0, то VFP считает, что кодовые страницы файла-источника и файла-приемника совпадают. Данные копируются без преобразования их кодовой страницы.

Если в таблице-приемнике есть поле типа Integer (AutoInc) и оно имеется в списке заполняемых полей, то команда APPEND FROM не будет выполнена, если AUTOINCERROR установлен в ON. Путь преодоления проблемы – это установка SET AUTOINCERROR в OFF или задание функцией CURSORSETPROP( ) свойства AutoIncError курсора-приемника равным .F. При этом величины для AutoInc-поля будут соответствующим образом вычисляться, а имеющиеся значения в таблице-источнике игнорироваться.

Команда

IMPORT FROM FileName [DATABASE DatabaseName [NAME LongTableName]]
                   [TYPE] FW2 | MOD | PDOX | RPD | WK1 | WK3 | WKS
                   | WR1 | WRK | XLS | XL5 [SHEET cSheetName]
                   | XL8 [SHEET cSheetName] [AS nCodePage]

импортирует данные из файла FileName в новую таблицу VFP.

Опции и параметры см. в описании команд APPEND FROM и COPY TO.

Команда

EXPORT TO FileName [TYPE] DIF | MOD | SYLK | WK1 | WKS | WR1
                   | WRK | XLS | XL5 [FIELDS FieldList] [Scope] [FOR lExpression1]
                    [WHILE lExpression2] [NOOPTIMIZE] [AS nCodePage]

копирует данные текущей таблицы VFP в файл иного формата.

Опции и параметры см. в описании команд APPEND FROM и COPY TO.