Утилита file2db

file2db - утилита командной строки, предназначенный для загрузки данных из текстовых, xml, книг Excel файлов и любых файлов целиком в таблицы базы данных.

Доступны для скачивания две версии file2db: file2db_ib для Firebitd/Interbase, и file2db+ado для всех оставльных SQL серверов. Требуется соответствующий драйвер ADO)

Чтобы загрузить списки из текстовых файлов, xml файлов и книг Excel, задайте разделитель полей и список полей:

file2db_ib -L <разделитель> -f <поля>

Чтобы загрузить полностью файл в BLOB поле, укажите опции: имя BLOB поля, имя поля для хранения имени файла и, что необязательно, поле для хранения MIME типа

file2db -N -u <URL> -c <поле данных>{,<content2>} -y < поле типа MIME>

В опции -c указывается одно поле или несколько полей, разделенных символом запятой.

Обратная операция- это выгрузка файла из BLOB поля (команда -X)

Чтобы задать параметры соединеия с СУБД, используйте опцию –s или компинацию опций of -h -@ -k -# -! и –w

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

Иначе, как минимум, нужно указать путь к [первому] файлу базы данных или алиасу, имя пользователя БД, напрмер: SYSDBA, пароль (masterkey ;) если вы забыли) (- h < DB > -@ < USER > - k < PWD >).

Также вы можете укзать номер диалекта SQL, роль и кодировку по умолчанию для соединения с СУБД (-# < DIALECT > -! <ROLE> -w <CODEPAGE> ).

Есть три команды:

-L - загрузить списки;

-N - загрузить файлы в BLOB поля;

-X - выгрузить BLOB поля в файлы:

Нужно указать опции соединеия с СУБД и указать имя таблицы (- t < таблица >).

Другие опции контролируют загрузку и выгрузку данных.

Опция разделителя -L.

-l < тип разделителя колонок >

Доступные типы -

Также можно задать любой символ:

Все примеры показывают последовательность CRLF

По умолчанию используется символ табуляции.

Опция -0 вставляет NULL вместо пустых строк

-0

По умолчанию -0 выключено.

Опция шифрования –N

Данные могут быть зашифрованы (применяется алгоритм Blowfish (Bruce Schneier, 1994). Для шифрования и дешифрования (команды -N и -X) рекомендуется задать опцию -j:

-j < ключ шифрования>

По умолчанию ключ шифрования равен 'NONE'

Каждый атритут, который вы хотите зашифровать или, наоборот, расшифровать, должен быть указан в верхнем регистре-

-n -U <URL> -C <содержимое1>{,<содержимое2>} -Y < MIME тип контента> - значения полей будут зашифрованы

-n -U <URL> -c <содержимое1>{,<содержимое2>} -y < MIME тип контента> - значения полей НЕ будут зашифрованы

Только опции –u , -c и -y (или –U , -C и -Y ) должны быть заданы в верном регистре. Остальные опции нечуствительны к регистру..

Загружаемые файлы (в командах -L и -N) могут быть перечислены с применением маски файлов, допускется применять сиволы '*' и '?'.

По умолчанию файлы из вложенных каталогов не загружаются. Нужно задать опцию рекурсии подкаталогов -r.

Замечание: символ ‘\’, используемый в пути имен файлов DOS/Windows буджет заменен на символ '/'.

Если указано имя директории, по умолчанию обрабатываются файлы с расширениямим имени файла

.wml .htm .html .xhtm. xhtml .oeb .pkg .txn .xml .txt .gif .png .jpg .jpeg .tif .tiff .wav .css .xls

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

Опция -y (-Y) устанавливает MIME тип загруженного документа. Если file2db не может определить MIME тип, задается тип по умолчанию text/html. MIME тип по умолчанию можно сменить опцией -z.

Для команды -L опция -2 < номер строки> задает номер строки (начиная с 1) откуда начинаются данные. Это нужно, если файл содержит заголовок. Если заголовок состоит из одной строки, укажите -2 2. По умолчанию значение 1.

fil2db обрабатывает книги Excel только, если на компьютере установлен Microsoft Office Excel (как минимум, версии 2000 года). -1 < номер строки > задать номер строки, в которой перечислены атрибуты. По умолчанию 1.

Книга Excel одну или более таблиц, соответсвующих таблицам базы данных. Имя каждой таблицы должно быть точно таким, как имя таблицы базы данных.

Загрузка из Excel поэтому немного запутана. Вы должны удалить все пустые таблицы из книги, а оставшиеся правильно переименовать так, чтобы имена таблиц строго соответсвовали таблицам базы данны.

Загрузка из книг Excel предназначена в первую очередь для того, чтобы опустить опцию -f перечисления полей (атрибутов) и перечислить атрибуты в самой таблице Excel. Обязательно нужно задать опции -1 и -2.

Книга Excel может содержать колонки, которые не следует загружать. file2db сначала находит строку, указанную в опции -1 и берет список колонок (атрибутов таблицы базы данных) и по ним определяет левый и правый края данных в таблице Excel.

По умолчанию данные из BLOB поля выгружаются в файлы в текущей директории (команда –X). Опция -o задает выходной каталог.

file2db предоставляет две опции для изменения имен файлов, записываемых в таблицы базы данных. Вы можете добавить суффикс к имени файла опцией -u. Вы можете удалить префикс опцией -m и добавить новый префикс опцией -q.

Часто перед загрузкой данных требуется предварительная очистка таблицы. В случае Interbase/Firebird вы можете использовать, например, утилиту командной строки isql для выполнения из сценариев SQL запросов.

Передать параметры можно через переменную окружения QUERY_STRING. Это полезно, когда file2db вызывается с веб страницы. Опция -g загружает параметры из переменной окружения QUERY_STRING, а опция –p - из входного потока. (что соответсвует методам HTTP GET и POST). В обоих случаях паарметры передаются как url-encoded, например: x=&o=path

Утилита file2db читает инициализационный файл file2db, располагаемый в папке программы. Вы можете создать этот файл для хранения таких опций, как опции соединения с базой данных.

Опция -d подавляет чтение инициализационного файла dile2db.ini

Пример 1

Загрузить каждую строку из CSV файла customers.txt в таблицу customer:

SET DB=localhost:\src\aims\db\aims.fdb

SET CP=WIN1251

SET USER=SYSDBA

SET PWD=masterkey

SET ROLE=

SET DIALECT=3

SET DB_OPTS=-h "%DB%" -@ "%USER%" -k "%PWD%" -w "%CP%" -! "%ROLE%" -# %DIALECT%

SET F_CUSTOMER=CNO,CNAME,CINN,CMODIFIER,CCREATED

file2db_ib -L "|" %DB_OPTS% -v -r -i -t customer -f %F_CUSTOMER% customer.txt

Пример 2

Загрузить из книги Excel customers.xls в таблицу customer:

file2db_ib -L "|" %DB_OPTS% -v -r -i -t customer customer.xls -1 1 -2 2

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

Чтобы увидеть весь список команд и опций, запустите из командной строки file2db без параметров:

Вызов: file2db _ib -[?|e|a|x] [Опции] Файл(ы)|Маска файла|Каталог
Список файлов, например: file1.txt ..\file2.xml
Маска файлов содет включать символы * и ?, заменяющие несколько или один символ, например, *.html
Команды:
e - регистрация программы -u имя пользователя -t активационный код
l <разделитель> - загрузить текст с разделителями записей. Обязателно применение опции -f с указанием списка полей (кроме таблиц Excel)
n <разделитель атрибутов> - добавить файлы в таблицу базы данных. #9 []
x - выгрузить файлы из базы данных
Опции: -? - этот экран подсказки
s <строка соединения с СУБД>
или -h <DB> -@ <USER> -k <PWD> -# <DIALECT> -! <ROLE> -w <CODEPAGE>
t <таблица> - имя таблицы
f <список атрибутов> - список, разделенный запятой, например: fld1,"Fld 2". В списке не допускается применение пробелов.
u <атрибут имени файла> - атрибут для записи имени и пути файла (записывается как URL). Используйте -U Для шифрования/дешифрования.
c <column1>{,<column2>} - колонки с содержимым. Используйте C для шифрования содержимого
y <атрибут> - атрибут для хранения MIME типа. Используйте -Y, если нужно зашифровать/расшифровать данные.
m <префикс> - удалить префикс имени файла
q <префикс> - добавить префикс имени файла
z <тип MIME> - тип MIME по умолчанию (text/html, если не задано)
i - очистить таблицу перед загрузкой или после выгрузки
j <ключ> - ключ шифрования
o <каталог> - выгрузить в каталог
v - выдавать подробный отчет
r - рекурсия подкаталогов
a - любые файлы, иначе только:.wml.htm.xhtm.xhtml.oeb.pkg.txn.xml.txt.gif.png.jpg.jpeg.tif.tiff.wav.css.xls
g - построить командную строку из переменной окружения QUERY_STRING для метода HTTP GET.
p - взять опции командной строки с входного потока (метод HTTP POST)
1 <1..n> - номер строки в таблице Excel, в которой перечислены поля таблицы БД [1]
2 <1..n> - номер первой строки с данными [1]. Excel: 1,2,3.. Текст: 1|2
9 <record delimiter>. [#13#10, ^M^J, #$D#$A]
0 - устанавливать пустые поля в NULL
d - не читать настройки из инициализационного файла file2db.ini

file2db Copyright © 2005 Андрей Иванов. Все права зарезервированы.