powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Script Executive: нет ли чего-нибудь вроде констант, переменных или макросов?
6 сообщений из 6, страница 1 из 1
Script Executive: нет ли чего-нибудь вроде констант, переменных или макросов?
    #39599897
Вопрос!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Если ли возможность в скрипте-сценарии, исполняемом IBExpert-ом, использовать собственные переменные и/или константы?

Например, объявил в начале блока скрипта константу (или переменную), как нибудь эдак:
Код: vbnet
1.
LET DB_NAME = 'Localhost/3050:D:\MyBase.FDB';


- а потом используешь ее в create database / connect database:

Код: sql
1.
2.
3.
create database  %DB_NAME% user 'SYSDBA' password 'masterkey' DEFAULT CHARACTER SET WIN1251;
...
connect database %DB_NAME% user 'SYSDBA' password 'masterkey';


Есть ли подобные средства?

Спасибо.
...
Рейтинг: 0 / 0
Script Executive: нет ли чего-нибудь вроде констант, переменных или макросов?
    #39599912
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос!> Если ли возможность в скрипте-сценарии, исполняемом IBExpert-ом,
Вопрос!> использовать собственные переменные и/или константы?

Смотря что Вы называете "скрипт-сценарий, исполняемый IBExpert-ом".
IBEScript, например, умеет ibec_[Set/Get]GlobalVar и
ibec_[Set|Get]EnvironmentVariable
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Script Executive: нет ли чего-нибудь вроде констант, переменных или макросов?
    #39599923
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чего ты хочешь добиться, прописав некую переменную в начале скрипта?
Т.е., я понимаю, когда хотят задать некое значение извне скрипта и потом в скрипте его использовать. А вот что именно ты хочешь и для чего?
Кроме уже упомянутых Рустамом вариантов возможны и другие, зависит от задачи.
...
Рейтинг: 0 / 0
Script Executive: нет ли чего-нибудь вроде констант, переменных или макросов?
    #39599985
Вопрос!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpertА чего ты хочешь добиться, прописав некую переменную в начале скрипта?
Т.е., я понимаю, когда хотят задать некое значение извне скрипта и потом в скрипте его использовать. А вот что именно ты хочешь и для чего?
Кроме уже упомянутых Рустамом вариантов возможны и другие, зависит от задачи.

Например, живой процесс:
Генерация скрипта создания базы по файлу модели, файл Model_42.grc (IBExpret model file).
42 - это # версии модели. Их (версий) несколько, используются параллельно.

В секции дизайнера БД "Model Options ->Pre Script" руками добавлен скрипт:
- "убивающий" старую базу с именем Data_<#версии_модели>,
- "создающий" новую базу с именем Data_<#версии_модели>:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
...
set clientlib '<...>';
connect database 'localhost/3050:D:\Testing\Data\Data_42.fdb'
  user 'SYSDBA'
  password 'masterkey';
...
drop database;
...
create database  'localhost/3050:D:\Testing\Data\Data_42.fdb'
  user 'SYSDBA'
  password 'masterkey'
  DEFAULT CHARACTER SET WIN1251;
...
connect database 'localhost/3050:D:\Testing\Data\Data_42.fdb'
  user 'SYSDBA'
  password 'masterkey';


...
А секции дизайнера БД "Model Options ->Pre Script" руками добавлен скрипт, в котором :
- повторный коннект к созданной базе с именем Data_<#версии_модели>,
- объявляется External Table с именем EXCHANGE_<#версии_модели>;
- записывается в созданную базу служебная информация, включающаю <#версии_модели> модели, #целевой версии сервера FireBird # версии клиентского софта и т.д.:

Код: sql
1.
2.
3.
4.
5.
6.
7.
insert into Global_Parameter
  (Parameter_Name, Value_As_String) values('ModelVersion', '42');
insert into Global_Parameter
  (Parameter_Name, Value_As_String) values('FBVersion', '2.07');
insert into Global_Parameter
  (Parameter_Name, Value_As_String) values('ClientVersion', '56.42');
...



- что тоже неплохо бы описывать в одном месте (в данном случае - в секции файла модели Model Options ->Pre Script), а не напрямую втыкать в "Insert Into"...
...
Рейтинг: 0 / 0
Script Executive: нет ли чего-нибудь вроде констант, переменных или макросов?
    #39600124
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. CONNECT после CREATE DATABASE - лишнее действие.
2. Избежать двойного прописывания пути для CONNECT'ов без извращений вряд ли удастся.
3. С инсертами решаемо. В pre-script вставляем IBEBlock, в котором задаем глобальные переменные (ibec_SetGlobalVar). Инсерты в post-script тоже засовываем в IBEBlock, в котором читаем глобальные переменные и подсовываем их значения в инсерты.
4. Ну а в качестве извращения можно вынести все это тряхомудие в отдельный скрипт, который генерить на лету ibeblock'ом, а в основном скрипте выполнять его через INPUT. Т.е., примерно так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
execute ibeblock
as
begin
  -- Здесь собираем текст скрипта и записываем его в файл
end;

INPUT 'file name';
...
Рейтинг: 0 / 0
Script Executive: нет ли чего-нибудь вроде констант, переменных или макросов?
    #39600129
Вопрос!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IBExpert,

спасибо, попробую выкрутиться.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Script Executive: нет ли чего-нибудь вроде констант, переменных или макросов?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]