Программа convert предназначена для конвертирования файлов базы
данных clarion в файлы базы данных foxpro или наоборот. Конвертация
задается с помощью скрипта, записанного в файл. Имя файла указывается в
командной строке программы convert. По умолчанию открывается файл script из текущей директории.
Вообще, программа написана для работы с АСУ ВУЗ абитуриент и контингент,
но может быть использована как угодно благодаря тому, что мне стукнуло
в голову написать чтение и разбор скрипта из файла.
| Параметр | Значение |
| target_table_name | название базы, которая будет создана. По идее, будет
создан файл target_table_name.(dbf/dat) и target_table_name.(fpt/mem) (если в базе
присутствуют поля memo) |
| target_path | путь к базе, которая будет создана. Необязательный параметр,
если не указан, то база будет создаваться в текущей директории. Может быть абсолютным или относительным |
| source_table_name | название исходной базы. Программа будет искать и читать
информацию из файла source_table_name.(dbf/dat) и source_table_name.(fpt/mem)
(если в базе есть поля memo). Вообще, база будет искаться в текущей
директории, но никто не мешает указать полный путь к базам. |
| source_path | путь к исходной базе. Необязательный параметр,
если не указан, то база будет открываться в текущей директории. Может быть абсолютным или относительным |
| type_name | название типа базы. Может быть FOXPRO или CLARION, причем
тип исходной базы должен отличаться от типа создаваемой базы (т.е.
нельзя конвертировать из FOXPRO в FOXPRO или из CLARION в CLARION) |
| field_name | название поля в создаваемой базе данных |
| field_type | тип поля. Возможны типы (foxpro):
CHAR, NUMBER, LOGICAL, MEMO, DATE, FLOAT, PICTURE
(clarion)
LONG, REAL, STRING, PICTURE, BYTE, SHORT, GROUP, DECIMAL, MEMO
|
| SET | При указании этой функции значения SvalueN поля
исходной базы будут конвертироваться в соответствующие им значения
TvalueN создаваемой базы. |
| field_size | размер поля в знаках (символах или цифрах). Необходимо указывать только для
следующих типов данных (foxpro):
CHAR(field_size),
NUMBER(field_size,field_dec),
FLOAT(field_size,field_dec)
(clarion)
STRING(field_size),
MEMO(field_size),
DECIMAL(field_size, field_dec)
Ограничение на размер всех полей составляет 255 знаков, за исключением поля MEMO, для
которого максимальный размер составляет 65535 знаков.
|
| field_dec | точность поля в десятичных цифрах. Необходимо указывать только для
следующих типов данных (foxpro):
NUMBER(field_size,field_dec),
FLOAT(field_size,field_dec)
(clarion)
DECIMAL(field_size,field_dec)
Примечание: При указании точности, отличной от нуля, для базы данных
FoxPro, один знак будет отводиться для хранения десятичной точки (в связи с
особенностью формата данных FoxPro)
|
| DIM[field_dim] | для базы данных CLARION это означает, что
данное поле представляет собой массив размером field_dim элементов.
Вообще, размерность массивов может быть произвольной, но в данной программе размерность
ограничена единицей. Для базы данных FOXPRO это ничего не значит |
| FROM source_field_name | название поля в исходной базе данных, из которого будут
считываться данные в определяемое поле |
| ZEROS | флаг, если присутствует, то поле дописывается нулями при конвертации.
Работает только вместе с FROM. |
| FILL n | если вы не хотите, чтобы это поле конвертировалось из
чего-нибудь, вы можете указать ASCII-код символа, которым будет
заполнено это поле. Код указывается в десятичном виде. |
| DEFAULT n | если вы не хотите, чтобы это поле конвертировалось из
чего-нибудь, вы можете указать значение, которое будет присвоено этому полю.
Примечание: Если вы хотите присвоить значение строке, то можно указывать
только одно слово. Кавычки вам не помогут. |
| SEARCH search_field FROM search_table_name WHERE condition | очень хитрая
конструкция, по сути вложенный запрос. В данное поле будет вставлено
первое попавшееся значение поля search_field из таблицы
search_table_name, которое удовлетворит условию condition. Это
условие должно быть вида:
[table_name1.]field_name1=[table_name2.]field_name2
Здесь table_name1 и table_name2 - названия таблиц, если они не указаны,
то берется название текущей таблицы (логично предположить, что
с одной стороны указывается текущая таблица, а с другой - название
таблицы search_table_name), field_name1 и field_name2 - названия
полей, которые необходимо сравнивать для достижения выполнения условия. |
| SPLIT | это ключевое слово позволяет расположить внутри одного поля,
которое будет присутствовать в создаваемой базе, несколько полей исходной базы. Определения
полей, входящих в состав составного поля, аналогично определению обычных полей,
но название поля field_name не указывается. Для этих полей также по
умолчанию указывается флаг ZEROS |
| key_name | название ключа. После названия в скобках указывается
список полей, которые входят в этот ключ. Количество полей может быть равно единице |
| DUP | значения ключа могут дублироваться. По умолчанию не могут |
| NOCASE | в значениях ключа не различается регистр. По умолчанию различается |
| NULL | в значениях ключа могут присутствовать нулевые значения. По умолчанию не могут |
| INDEX | ключ является индексом. По умолчанию не является |