<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://wiki.standart-n.ru/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://wiki.standart-n.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_IBEScript</id>
		<title>Использование IBEScript - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.standart-n.ru/wiki/index.php?action=history&amp;feed=atom&amp;title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_IBEScript"/>
		<link rel="alternate" type="text/html" href="http://wiki.standart-n.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_IBEScript&amp;action=history"/>
		<updated>2026-05-13T05:37:57Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.23.3</generator>

	<entry>
		<id>http://wiki.standart-n.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_IBEScript&amp;diff=7441&amp;oldid=prev</id>
		<title>Lander: Новая страница: «'''Для чего:'''  Часто наши доработки включают создание ряда дополнительных таблиц, процед…»</title>
		<link rel="alternate" type="text/html" href="http://wiki.standart-n.ru/index.php?title=%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_IBEScript&amp;diff=7441&amp;oldid=prev"/>
				<updated>2019-04-08T05:39:21Z</updated>
		
		<summary type="html">&lt;p&gt;Новая страница: «&amp;#039;&amp;#039;&amp;#039;Для чего:&amp;#039;&amp;#039;&amp;#039;  Часто наши доработки включают создание ряда дополнительных таблиц, процед…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Для чего:'''&lt;br /&gt;
&lt;br /&gt;
Часто наши доработки включают создание ряда дополнительных таблиц, процедур, триггеров и TMS. Для того чтобы перенести эти наработки другому клиенту(в другую базу) приходится последовательно через IBExpert. Тут есть возможность для ошибок да и процесс по времени затягивается. Есть решение использовать IBEScript для пакетного добавления данных в БД.&lt;br /&gt;
&lt;br /&gt;
'''Что такое IBEScript:'''&lt;br /&gt;
&lt;br /&gt;
Это приложение является значительно расширенным аналогом isql.exe (консольная утилиты предоставляющей доступ через SQL до баз Firebird).&lt;br /&gt;
Кроме дублирования функционала isql-утилиты, IBEScript расширен специальными командами под названием IBEBlock. Количество команд переваливает за 3 сотни.&lt;br /&gt;
&lt;br /&gt;
'''Как это работает'''&lt;br /&gt;
&lt;br /&gt;
Рассмотрим по шагам на примере формирования выгрузки в созвездие&lt;br /&gt;
Для работы выгрузки я использую ТМС для запуска, Несколько процедур для формирования данных и также несколько временных таблиц.&lt;br /&gt;
&lt;br /&gt;
1. Заходим в IBExpert и получаем скрипт на создание таблицы&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
/***                Generated by IBExpert 08.04.2019 9:25:15                ***/&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
/***      Following SET SQL DIALECT is just for the Database Comparer       ***/&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
SET SQL DIALECT 3;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
/***                                 Tables                                 ***/&lt;br /&gt;
/******************************************************************************/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE GENERATOR GEN_SOZVEZDIE_ACTION_MOVE_ID;&lt;br /&gt;
&lt;br /&gt;
CREATE TABLE SOZVEZDIE_ACTION_MOVE (&lt;br /&gt;
    ID                   INTEGER,&lt;br /&gt;
    MAP_PHARMACY_ID      DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    DISTRIBUTION_ID      DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    BATCH_ID             DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    DOC_DATE             DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
    DOC_TYPE             DM_TEXT /* DM_TEXT = VARCHAR(250) */,&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Сохраняем полученный скрипт в файл - '''SOZVEZDIE_ACTION_MOVE.sql'''&lt;br /&gt;
Повторяем этот шаг для всех требуемых процедур и таблиц.&lt;br /&gt;
&lt;br /&gt;
Так же выгружаем нашу ТМС - заходим в таблицу GROUPS и выгружаем поле DATA в формате hex в файл - TMS_SOZVEZDIE.hex&lt;br /&gt;
&lt;br /&gt;
Все полученные таким образом файлы помещаем в отдельную папочку к примеру '''exp_sozvezdie'''.&lt;br /&gt;
&lt;br /&gt;
2. Создаем скрипт для загрузки TMS в BLOB &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DELETE FROM GROUPS WHERE id=19999;&lt;br /&gt;
SET BLOBFILE 'e:\TMS\Manager\exp_to_sozvezdie\TMS_SOZVEZDIE.hex';&lt;br /&gt;
INSERT INTO GROUPS (ID, PARENT_ID, CAPTION, GROUPTABLE, STATUS, INSERTDT, SYSTEMFLAG, DESCRIPTION, IMAGEINDEX, DATA, COLOR, SORTING, BASE_AGENT_ID, SID) VALUES (19999, 61, 'Выгрузка в созвездие', 'TMS', 0, '30-MAR-2019 16:54:30', 0, NULL, -1,:h00000000_7FFFFFFF, NULL, NULL, 0, NULL);&lt;br /&gt;
commit;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Первая строчка удаляет из БД ТМС если она уже существует&lt;br /&gt;
&lt;br /&gt;
'''SET BLOBFILE''' - этой командной мы указываем где хранится наша ТМС(выгруженная как hex и БД)&lt;br /&gt;
&lt;br /&gt;
'''INSERT INTO GROUPS''' - тут собственно и происходит загрузка данных обратите внимание поле в которое будет загружен файл в VALUES содержит следующую запись -&lt;br /&gt;
''':h00000000_7FFFFFFF''' ее не меняем это служебное значение для IBScript&lt;br /&gt;
&lt;br /&gt;
3. Копируем в эту папку файл IBEScript.exe и в этой же папке создаем BAT файл.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@echo off&lt;br /&gt;
echo Start %time%&lt;br /&gt;
&lt;br /&gt;
set db_path='localhost:E:\Clients\ЭРИС\1\ZTRADE\ztrade.fdb'&lt;br /&gt;
set source_path=E:\TMS\Manager\exp_to_sozvezdie\&lt;br /&gt;
&lt;br /&gt;
echo Create Table,Triggers,Procedure &lt;br /&gt;
for %%i in (*.sql) do (&lt;br /&gt;
IBESCRIPT.exe -N -D%db_path% -USYSDBA -Pmasterkey  %source_path%%%i&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
echo ***Complited***&lt;br /&gt;
pause&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
переменная '''db_path''' - содержит путь в какую базу мы будем загружать наши данные&lt;br /&gt;
&lt;br /&gt;
переменная '''source_path''' - содержит путь до папки с нашими скриптами&lt;br /&gt;
&lt;br /&gt;
Затем мы в цикле запускаем програvму '''IBEScript'''&lt;br /&gt;
&lt;br /&gt;
IBESCRIPT.exe -N -D%db_path% -USYSDBA -Pmasterkey  %source_path%%%i&lt;br /&gt;
&lt;br /&gt;
если мы используем только один скрипт (а созданиее ТМС можно поместить в конец файла со скриптом) нам можно указать в место %source_path%%%i путь до него , а так же убрать цикл.&lt;br /&gt;
&lt;br /&gt;
4. После всех действий у нас будет папочка со всеми нужными скриптами и BAT файл запускающий загрузку данных в таблицу.&lt;/div&gt;</summary>
		<author><name>Lander</name></author>	</entry>

	</feed>