powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Автодобавл-е set term до и после блока в Script Exec.: трабл при наличии internal-функции
2 сообщений из 2, страница 1 из 1
Автодобавл-е set term до и после блока в Script Exec.: трабл при наличии internal-функции
    #38613103
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hi all

Вот этот вот блок кода:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
execute block as
    declare msg varchar(255);
    declare function fn_internal() returns int deterministic as
    begin
        return rdb$get_context('SYSTEM', 'LOCK_TIMEOUT');
    end
begin
    if  ( fn_internal() < 0 ) then
    begin
        msg = 'NO WAIT or LOCK_TIMEOUT required!';
        --execute procedure sp_add_to_abend_log( msg );
        --exception ex_nowait_or_timeout_required;
    end
end

- содержит новую фичу ФБ-3: объявление внутренней функции в рамках EB.

Этот код можно без проблем выполнить в SQL Editor'e, однако в Script Executive его обязательно надо объять терминаторами:
set term ^; -- иначе не скомпилится!
execute block as
declare msg varchar(255);
declare function fn_internal() returns int deterministic as
begin
return rdb$get_context('SYSTEM', 'LOCK_TIMEOUT');
end
begin
if ( fn_internal() < 0 ) then
begin
msg = 'NO WAIT or LOCK_TIMEOUT required!';
--execute procedure sp_add_to_abend_log( msg );
--exception ex_nowait_or_timeout_required;
end
end
^ set term ;^

Причём ошибка будет
Код: plaintext
1.
2.
3.
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Unexpected end of command - line 10, column 50.

- т.е. ругается на "msg = 'NO WAIT or LOCK_TIMEOUT required!';"

Нельзя ли подправить консерваторию ? (а то уже привычно как-то в ИБЭ не запихивать эти set term'ы для всяких одноразовых скриптов)
...
Рейтинг: 0 / 0
Автодобавл-е set term до и после блока в Script Exec.: трабл при наличии internal-функции
    #38613398
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправил.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Автодобавл-е set term до и после блока в Script Exec.: трабл при наличии internal-функции
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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