Команда APPEND FROM

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

Синтаксис:

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

Параметры:
FileName
Задает имя файла, из которого берутся добавляемые записи. Если имя файла задано без расширения, по умолчанию предполагается таблица Visual FoxPro и расширение .DBF. Если вы присоединяете записи из таблицы Visual FoxPro, добавляемые записи помечаются в таблице на удаление, независимо от установки SET DELETED.
?
Отображает диалоговое окно Open, в котором вы можете выбрать добавляемую таблицу.
FIELDS FieldList
Задает поля, к которым добавляются данные.
FOR lExpression
Задает добавление новой записи во всех тех случаях, когда для записи в текущей таблице выражение lExpression имеет значение "истина" (.T.). Записи добавляются до тех пор, пока не будет заполнена текущая таблица. Если предложение FOR не задано, к текущей таблице добавляется весь файл-источник.
TYPE
Задает тип файла-источника, из которого берутся добавляемые записи. Если этот файл не является таблицей Visual FoxPro, для него обязательно нужно задать тип файла, но ключевое слово TYPE можно не указывать. Можно добавлять записи из файлов самых разных типов, включая текстовые ASCII-файлы с разделителями, в которых можно задавать разделитель поля.
Если файл-источник принадлежит такому типу файлов, для которого не существует расширения имени, обычно используемого по умолчанию, то вместе с именем файла необходимо задавать расширение. Например, файлы электронных таблиц Microsoft Excel обычно имеют расширение имени .XLS. Если вы добавляете записи из таблицы Excel, у которой другое расширение имени, не забудьте указать его.
Замечание Когда записи берутся из электронной таблицы, ее содержимое должно быть организовано по строкам, а не по столбцам. В этом случае присоединяемые записи будут соответствовать структуре таблицы.
DELIMITED
Указывает, что файл-источник, из которого записи добавляются в текущую таблицу Visual FoxPro, является файлом с разделителями. Файл с разделителями это текстовый ASCII-файл, в котором каждая запись заканчивается возвратом каретки и переводом строки. По умолчанию предполагается, что значения полей отделены друг от друга запятыми и символьные значения заключены в кавычки. Например:

"Smith", 9999999, "TELEPHONE"

Для всех файлов с разделителями предполагается расширение имени .TXT.
Из файлов с разделителями можно импортировать даты, если они имеют надлежащий формат. По умолчанию даты используют формат mm/dd/yy. Задавать век в дате необязательно. При импортировании даты, не содержащей номера века (например 12/25/95), считается, что имеется в виду двадцатый век. Разделителями даты могут служить любые нецифровые символы, кроме символов, разделяющих поля в файле с разделителями.
Даты других форматов можно импортировать, если их формат совпадает с форматом даты, установленным командой SET DATE. Чтобы импортировать даты, формат которых отличается от принятого по умолчанию, перед использованием команды APPEND FROM выдайте команду SET DATE с соответствующим форматом даты. Чтобы проверить, можно ли импортировать определенный формат даты, воспользуйтесь функцией CTOD(). Если эта дата оказывается допустимой для CTOD(), она будет импортирована корректно.
DELIMITED WITH Delimiter
Указывает, что символьные поля ограничиваются символами, отличными от кавычек.
DELIMITED WITH BLANK
Задает файлы, в которых поля отделены друг от друга не запятыми, а пробелами.
DELIMITED WITH TAB
Задает файлы, в которых поля отделены друг от друга не запятыми, а табуляцией.
DIF
Задайте DIF, чтобы импортировать данные из файла VisiCalc .DIF (Data Interchange Format). Векторы (столбцы) становятся полями, а кортежи (строки) становятся записями. Предполагается, что файлы DIF имеют расширение имени .DIF.
FW2
Задайте FW2, чтобы импортировать данные из файла, созданного в Framework II. Предполагается, что файлы FW2 имеют расширение имени .FW2.
MOD
Задайте MOD, чтобы импортировать данные из файла Microsoft Multiplan версии 4.01. Файлы MOD создаются Microsoft Multiplan версии 4.01; предполагается, что файлы имеют расширение имени .MOD.
PDOX
Задайте PDOX, чтобы импортировать данные из файла базы данных Paradox версии 3.5 или 4.0. Предполагается, что файлы Paradox имеют расширение имени .DB.
RPD
Задайте RPD, чтобы импортировать данные из файла, созданного в RapidFile версии 1.2. Предполагается, что файлы RapidFile имеют расширение имени .RPD.
SDF
Задайте SDF, чтобы импортировать данные из файла System Data Format. Файл SDF это текстовый ASCII-файл, в котором записи имеют фиксированную длину и заканчиваются возвратом каретки и переводом строки. Предполагается, что файлы SDF имеют расширение имени .TXT.
SYLK
Задайте SYLK, чтобы импортировать данные из SYLK (Symbolic Link). Файлы SYLK используются в Microsoft MultiPlan. Столбцы файла SYLK становятся полями в таблице Visual FoxPro, а строки становятся записями. Имена файлов SYLK не имеют расширений.
WK1
Задайте WK1, чтобы импортировать данные из электронной таблицы Lotus 1-2-3 версии 2.x. Каждый столбец электронной таблицы становится полем, а каждая строка становится записью. Файлы электронных таблиц, созданные в Lotus 1-2-3 версии 2.x, получают расширение имени .WK1.
WK3
Задайте WK3, чтобы импортировать данные из электронной таблицы Lotus 1-2-3 версии 3.x. Каждый столбец электронной таблицы становится полем, а каждая строка становится записью. Файлы электронных таблиц, созданные в Lotus 1-2-3.WK3.
WKS
Задайте WKS, чтобы импортировать данные из электронной таблицы Lotus 1-2-3 версии 1-A. Каждый столбец электронной таблицы становится полем, а каждая строка становится записью. Файлы электронных таблиц, созданные в Lotus 1-2-3 версии 1-A, получают расширение имени .WKS.
WR1
Задайте WR1, чтобы импортировать данные из электронной таблицы Lotus Symphony версии 1.1 или 1.2. Каждый столбец электронной таблицы становится полем, а каждая строка становится записью. Файлы электронных таблиц, созданные в Symphony версии 1.0 или 1.2, получают расширение имени .WR1.
WRK
Задайте WRK, чтобы импортировать данные из электронной таблицы Lotus Symphony версии 1.0. Каждый столбец электронной таблицы становится полем, а каждая строка становится записью. Файлы электронных таблиц, созданные в Symphony версии 1.0, получают расширение имени .WRK.
XLS
Задайте XLS, чтобы импортировать данные из электронной таблицы Microsoft Excel. Каждый столбец электронной таблицы становится полем, а каждая строка становится записью. Файлы электронных таблиц, созданные в Microsoft Exel, получают расширение имени .XLS.
XL5 [SHEET cSheetName]
Задайте XL5, чтобы импортировать данные из Microsoft Excel версии 5.0. Столбцы электронной таблицы становятся полями таблицы, а строки электронной таблицы становятся записями. Файлы электронных таблиц, созданные в Microsoft Excel, имеют расширение имени .XLS.
AS nCodePage
Задает кодовую страницу таблицы-источника или файла-источника. Visual FoxPro копирует содержимое таблицы-источника или файла-источника и в процессе копирования данных автоматически преобразует их в кодовую страницу текущей таблицы.
Если заданная кодовая страница nCodePage не поддерживается, Visual FoxPro генерирует сообщение об ошибке. Выдав функцию GETCP() для кодовой страницы nCodePage, вы отобразите диалоговое окно Code Page, в котором можно задать кодовую страницу для присоединенной таблицы или файла.
Если предложение AS nCodePage опущено и Visual FoxPro не в состоянии определить кодовую страницу таблицы-источника или файла-источника, Visual FoxPro копирует содержимое таблицы-источника или файла-источника и в процессе копирования данных автоматически преобразует их в текущую кодовую страницу Visual FoxPro. Если установка SET CPDIALOG имеет значение ON, таблица в выбранной в данный момент рабочей области помечается кодовой страницей. Если вы присоединяете записи из таблицы, не помеченной кодовой страницей, появляется диалоговое окно Code Page, позволяющее выбрать кодовую страницу для таблицы, из которой берутся присоединяемые записи. Текущую кодовую страницу Visual FoxPro можно определить с помощью функции CPCURRENT()
. Если предложение AS nCodePage опущено и Visual FoxPro может определить кодовую страницу для присоединяемой таблицы или файла, Visual FoxPro копирует содержимое этой таблицы или файла и в процессе копирования данных автоматически преобразует их в кодовую страницу таблицы, которая выбрана в данный момент.
Если значение nCodePage равно 0, Visual FoxPro предполагает, что кодовая страница присоединяемой таблицы или файла совпадает с кодовой страницей выбранной в данный момент таблицы, и преобразование в текущую кодовую страницу Visual FoxPro не производится.

Комментарии:
Если файл, из которого делается добавление, является таблицей Visual FoxPro или таблицей, созданной предыдущими версиями FoxPro, предполагается, что он имеет расширение имени .DBF. Если файл, который вы собираетеь добавить, является таблицей Visual FoxPro, но расширение его имени отлично от .DBF, вы должны явно указать расширение. Если файл не является таблицей Visual FoxPro или таблицей, созданной предыдущими версиями FoxPro, необходимо задать тип файла, из которого делается добавление.
Прежде чем добавлять записи из таблицы, созданной в dBASE IV или dBASE V и содержащей memo-поле, сначала нужно открыть эту таблицу в Visual FoxPro с помощью команды USE. В ответ на запрос о том, надо ли преобразовать файл, нажмите кнопку Yes.
Если вы добавляете записи из таблицы Visual FoxPro, она может быть открыта в другой рабочей области. С записей, помеченных на удаление в добавляемой таблице, эта отметка снимается, как только они добавляются по месту назначения.

Пример:

* В следующем примере открывается таблица customer, ее структура
* копируется в таблицу backup, и таблица backup открывается. После этого
* Visual FoxPro присоединяет все записи из таблицы customer, относящиеся
* к Финляндии (Finland). Затем эти записи копируются в новый файл
* TEMP.TXT с ограничителями.
CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer  && Open customer table
COPY STRUCTURE TO backup
USE backup
APPEND FROM customer FOR country = 'Finland'
COPY TO temp TYPE DELIMITED
MODIFY FILE temp.txt
USE
DELETE FILE backup.dbf
DELETE FILE temp.txt

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 19.11.2002