PoleSoft Technologies Group
InterBase Data Supplier (ibds)
Версия 1.4.4
-
Данная весьма компактная программа-утилита позволяет выгружать
данные любого объема из баз данных СУБД InterBase и Firebird с
использованием IBX. Все необходимые настройки производятся в файле
ibds.ini.
-
Программа является 32-разрядной и консольной. Язык разработки -
Delphi.
-
-
СОДЕРЖАНИЕ
-
Принцип работы
-
-
Программа, согласно настройкам и параметрам, выгружает данные
запроса в текстовый файл по одной записи в строку. При этом никакого
промежуточного буфера не создается, что позволяет не загружать
оперативную память. Этим достигается возможность выгрузки
неограниченного количества записей таблиц. Во всяком случае,
миллионы записей выгружает без проблем.
-
Обратная операция загрузки записей в таблицу базы данных происходит
путем выполнения команды INSERT для каждой строки из текстового
файла, подготовленного ibds. Строка файла подставляется без
изменений в выражение VALUES(...) команды INSERT. Список полей
должен быть определен в параметре fields файла настройки
ibds.ini. В итоге выполнится команда
INSERT INTO
<таблица> (<fields>) VALUES (<строка>)
Если
параметр fields не указан, то команда будет выглядеть
так:
INSERT INTO <таблица> VALUES (<строка>) -
В основном, эта программа - средство для
переноса данных между базами из командной строки через текстовый
файл.
Возможности
Утилита позволяет
выполнять три функции:
-
Выборка и сохранение данных SELECT-запроса в текстовом файле.
BLOB-поля не поддерживаются. SELECT можно написать целиком как
команду, а можно указать список полей и часть команды после WHERE. В
последнем случае этот список полей можно использовать и при загрузке
данных в таблицу. Значения полей разделяются запятыми «,»
и строковые поля заключаются в кавычки.
-
Загрузка данных из текстового файла, подготовленного с
помощью п.1, в таблицу базы данных.
-
Выполнение любой SQL-команды, не возвращающей данные.
- В любые SQL-команды, в том числе выборки (SELECT), можно
передавать параметры из командной строки. Параметр в команде
начинается с двоеточия «:».
-
Настройка
-
-
Настройка производится в файле ibds.ini указанием параметров
подключения к базе данных и описание возможных операций (команд).
-
Строки-комментарии должны начинаться с символа «;».
-
-
Состав параметров секций
-
Все параметры - необязательные, если специально не указано обратное.
-
-
[DB]
-
В этой секции можно определить настройки подключения к базе данных.
Секция необязательная к заполнению. Некоторые параметры можно
передавать через командную строку.
-
-
file - файл базы данных
-
-
username - имя пользователя
-
(по умолчанию - 'sysdba')
-
-
password - пароль пользователя
-
(по умолчанию - 'masterke')
-
-
rolename - роль
-
-
charset - кодировка
-
(по умолчанию - 'WIN1251')
-
-
Пример:
-
[DB]
-
file=myserv:/opt/firebird/examples/employee.fdb
-
username=dbadmin
-
password=nimdabd
-
rolename=guru
-
charset=WIN1251
-
-
Кроме секции DB в файле должны присутствовать секции для
операций. Наименование секции должно совпадать с именем таблицы (при
загрузке и при выгрузке с использованием списка полей). Текстовый
файл должен(будет) иметь то же имя. В этих секциях могут
использоваться следующие параметры:
-
-
select - SQL-команда SELECT. Используется только при выгрузке
данных.
-
-
fields - список полей таблицы. При выгрузке используется,
если не указан параметр select. (по умолчанию - *)
-
-
commitrecords - количество записей, через которые при
выгрузке сохраняется файл на диск и при загрузке производится
commit.
-
(по умолчанию - 10000)
-
-
where - часть команды SELECT после WHERE. Используется только
при выгрузке, если не указан параметр select.
-
-
сommand - любая правильная однострочная SQL-команда.
-
-
Примеры:
-
[employee]
-
fields = EMP_NO,FIRST_NAME,LAST_NAME,PHONE_EXT,DEPT_NO
-
commitrecords = 10
-
where = JOB_COUNTRY != 'USA' order by 2
-
-
[myproc]
-
command = execute procedure myproc(:par1,:par2);
-
-
Использование
-
-
Запуск:
[путь]ibds <action>
<dsname>[(param,..)] [[[[<dbname>] <username>]
<password>] <rolename>] -
-
где
<action> -
действие:
-
s - выгрузить записи в текстовый файл
i - добавить
записи в таблицу
e - выполнить SQL-команду
Прописная
(заглавная) <action>
не останавливает программу после выполнения.
-
<dsname> - имя набора
данных(таблицы). Для него должна быть секция в ibds.ini
с параметрами, соответсвующими действию
-
<dbname> - полное имя
файла базы данных
-
<username> имя
пользователя
-
<password> пароль
-
<rolename> имя роли
-
-
Примеры:
-
ibds s employee
-
ibds i table2 myib:/db/mydb.gdb iamuser dontknow
-
ibds E myproc(1,value2) myib:/db/mydb.gdb iamuser dontknow
-
-
Файлы ibds.exe и основной файл
настройки ibds.ini должны находиться в одном каталоге
(папке).
-
-
При вызове с неверным количеством параметров выдается справка по
запуску.
-
-
В случае ошибки возвращаются следующие коды завершения:
-
0 - успешное завершение;
-
1 - неверные параметра запуска;
-
2 - ошибка при выполнении.
-
-
Лицензия
-
-
Данная программа поставляется с исходными текстами и
распространяется под лицензией GNU General Public License (GPL).
Полный ее текст смотрите в файлах gpl.txt и gplrus.txt.
-
-
История изменений
-
-
Условные обозначения:
-
+ добавлено, # изменено, - удалено, * исправлено
-
-
26.12.08 1.4.4
-
1.+ Адаптировано под Delphi 2006 (Turbo Delphi).
-
-
25.01.07 1.4.3
-
1.+ Руссификация.
-
2.+ Возможность передавать параметры в запросы.
-
3.+ Возможность выполнять любые SQL-команды (параметр command в
ibds.ini).
-
4.# Переработана выдача комментариев на экран.
-
-
28.11.06 1.3
-
Первая официальная версия. Реализованы все основные возможности.
-
-
-
С уважением,
-
PoleSoft Technologies Group (PSTG)
-
http://www.polesoft.ru
-
Email: support@polesoft.ru