Rambler's Top100

(c)2009-2017 openinfotech.ru

СУБД HyTech

Документация
Импорт - экспорт данных

Импорт - экспорт данных

При выполнении импорта-экспорта данных устанавливается соответствие полей исходной и порождаемой записи. Это соответствие устанавливается по именам полей (с учетом регистра). Отсутствующие в исходной таблице цифровые поля выходной таблицы заполняются двоичными нулями, символьные - пробелами. В процессе переноса данных выполняется преобразование информации согласно типам исходных и выходных полей.

Преобразование некоторых типов цифровых данных

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

представление дат:

 typedef enum {
	DATE1,	/* дд мм гг - Израиль */
	DATE2,	/* дд-мм-гг - Великобритания */
	DATE3,	/* дд.мм.гг - Германия */
	DATE4,	/* дд/мм/гг - Россия */
	DATE5,	/* мм-дд-гг - Америка */
	DATE6,	/* гг-мм-дд - Азия */
	DATE7	/* ггггммдд - dBase */
 } DATES;

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

Например, для вывода действительного с точностью до сотых в строку длиной до 10 символов, прижатого вправо, следует задать шаблон вида: "%- 10.2f". Подробнее см.описание функций printf/scanf.

Для описания параметров преобразования символьных и цифровых данных при импорте/экспорте определена следующая структура:

 typedef struct amFORMAT {
	DATES	nDateType;		/* Тип даты */
	int	bCentury;		/* Полный год, если != 0 */
	char	mFloatFormat[9];	/* Формат преобразования float */
	char	mDoubleFormat[10];	/* Формат преобразования double */
	char	mCurrencyFormat[10];	/* Формат вывода currency */
 } FORMAT;

По умолчанию заданы следующие значения преобразователя:

 FORMAT sFmt = { DATE4, 0, "%- 6.2f", "%- 10.4E", "%- 8.2f" };