Импорт данных Назад В начало Вперед

Оператор импорта данных дает возможность импортировать данные из текстового файла или файла формата DBASE в таблицу данных, описанную в словаре.

<оператор-импорта-данных> = import <имя-таблицы-приемника>
  <конструкция-From> [ <параметры-импорта> ] ;

<имя-таблицы-приемника> - имя физической таблицы-приемника.

<конструкция-From> - описание источника импорта:

<конструкция-From> = <тип-источника> <файл-импортер>

<тип-источника> - тип системы, из которой идет импорт:

<тип-источника> = txt | dbf

txt - импорт из текстового файла.

dbf - импорт из файла формата DBASE.

<файл-импортер> - имя файла-импортера.

<параметры-импорта> - указывают особенности выполняемого импорта, действуют в рамках оператора, в котором они заданы:

<параметры-импорта> = [arrangeByName] [arrangeByType]
  [fullInfo] [skipOverflow] [deleteImporter]
  [rewriteForNRec]

arrangeByName - сравнение полей по именам. Соответствие полей источника и приемника устанавливается по именам полей. Краткая форма параметра "N". Параметр указывается только при импорте из файла DBASE.

Сравнение имен происходит по первым 10 символам, т.к. длина имени поля в DBF равна 10 символам.

arrangeByType - сравнение полей по типам. Соответствие полей источника и приемника устанавливается по типам полей. Краткая форма параметра "T". Параметр указывается только при импорте из файла DBASE.

По умолчанию поля источника и приемника не проверяются на соответствие по какому-либо признаку, а импортируются по порядку.

fullInfo - создание журнального файла. Все операции импорта журналируются в текстовом файле (файл Journal в текущей директории), который выводится на экран после импорта. Краткая форма параметра "F".

skipOverflow - игнорирование лишних полей источника. При импорте из системы DBF при большем количестве полей у источника, чем у приемника, лишние поля источника не импортируются. Какие поля считаются лишними, зависит от включения параметра arrangeByName или arrangeByType. Краткая форма параметра "S". Параметр указывается только при импорте из файла DBASE. При импорте из системы DBF при большем количестве полей у источника, чем у приемника, импорт не происходит, если не задан параметр skipOverflow.

deleteImporter - удаление файла-импортера. После успешного импорта файл-импортер удаляется. Краткая форма параметра "D".

rewriteForNRec - обновление записей с существующим первичным ключом. Если при импорте запись с таким NRec уже существует в таблице, то ее содержимое обновляется. Параметр указывается только при импорте из DBF. Если параметр не указан, то при импорте записи с существующим NRec будет выдана ошибка "Неуникальный первичный ключ". Краткая форма параметра "R".

Общие соглашения для всех систем-импортеров:

При импорте из неструктурированного файла (текстовый файл):

При импорте из структурированного файла (файл формата DBASE):

Примеры

Пример 1

Импорт данных в таблицу Employee из файла employee.dbf

import Employee from dbf employee.dbf;

Пример 2

Импортируется файл test.doc в таблицу Test с созданием журнального файла.

import Test from txt test.doc fullinfo;

Пример 3

Импортируется файл trest.dbf в таблицу Trest. Соответствие полей производится по порядку, т.е. первому полю источника ставится первое поле приемника и т. д.

import Trest from dbf trest;

Пример 4

Импортируется файл perexod.dbf в таблицу Perexod. Соответствие полей производится по именам. Создается журнальный файл с полной информацией о проведении импорта.

import Perexod from dbf perexod.dbf arrangeByName fullInfo;

Пример 5

Импортируется файл perexod.dbf в таблицу Perexod. Соответствие полей производится по именам и типам, т.е. сначала находятся одноименные поля, потом сравниваются их типы.

import Perexod
	from dbf perexod.dbf arrangeByName arrangeByType;

Пример 6

Импортируется файл edizm.dbf в таблицу Edizm. Соответствие полей производится по типам, т.е. соответствие полей производится по порядку с проверкой типов.

import Edizm from dbf edizm arrangeByType;