Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBExpert Новый топик    Ответить
 Отладка процедуры с вызовом процедура в пакете  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1435
SET TERM ^ ;

CREATE OR ALTER PACKAGE TEST_PKG
AS
BEGIN
    PROCEDURE TEST_MAIN;
    PROCEDURE TEST_1;
END^

RECREATE PACKAGE BODY TEST_PKG
AS
BEGIN
    PROCEDURE TEST_MAIN
    AS
    BEGIN
        EXECUTE PROCEDURE TEST_1;
    END

    PROCEDURE TEST_1
    AS
    BEGIN
    END
END^

SET TERM ; ^


При отладке процедуры TEST_MAIN, текст выглядит следующим образом:
PROCEDURE TEST_MAIN
    AS
    BEGIN
        EXECUTE PROCEDURE TEST_1;
    END

И отладка не работает:
Undefined name.
Dynamic SQL Error.
SQL error code = -204.
Procedure unknown.
TEST_1.
16 окт 20, 10:50    [22215263]     Ответить | Цитировать Сообщить модератору
 Re: Отладка процедуры с вызовом процедура в пакете  [new]
Симонов Денис
Member

Откуда: Рязань
Сообщений: 10703
CyberMax,

Просто совет. Внутри пакета лучше всегда использовать вызов процедур с полным именем TEST_PKG.TEST_1
А то можно нарваться на некоторые неприятности, когда в глобальном пространстве есть одноимённая процедура.
16 окт 20, 11:58    [22215327]     Ответить | Цитировать Сообщить модератору
 Re: Отладка процедуры с вызовом процедура в пакете  [new]
CyberMax
Member

Откуда: Хабаровск
Сообщений: 1435
Симонов Денис,

Согласен. Последую совету.
16 окт 20, 13:31    [22215401]     Ответить | Цитировать Сообщить модератору
 Re: Отладка процедуры с вызовом процедура в пакете  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
Исправил.
19 окт 20, 03:14    [22216437]     Ответить | Цитировать Сообщить модератору
 Re: Отладка процедуры с вызовом процедура в пакете  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 109
Добрый день. Так же, появляется ошибка при запуске отладчика, если указать имя пакета при вызове функции из этого же пакета.

Сообщение об ошибке:
Invalid token.
Dynamic SQL Error.
SQL error code = -104.
Token unknown - line 19, column 41.
.

Пример пакета:
+
SET TERM ^ ;

CREATE OR ALTER PACKAGE NEW_PACKAGE1
AS
BEGIN
  PROCEDURE proc1;
  FUNCTION func1 RETURNS INTEGER;
END^

RECREATE PACKAGE BODY NEW_PACKAGE1
AS
BEGIN
  FUNCTION func1 RETURNS INTEGER
  AS
  BEGIN
    RETURN 0;
  END

  PROCEDURE proc1
  AS
    DECLARE VARIABLE n INTEGER;
  BEGIN
    -- так отладчик работает
    n = func1();

    -- Вот с такой строкой отладчик не запускается
    n = new_package1.func1();

    /*
      Что получается в теле процедуры proc1 в отладчике:

      n = IBE$DBG$PKG$1.func1();
      n = IBE$DBG$PKG$1.func1IBE$DBG$PKG$1.func1();

    */
  END

END^

SET TERM ; ^
19 окт 20, 15:57    [22216885]     Ответить | Цитировать Сообщить модератору
 Re: Отладка процедуры с вызовом процедура в пакете  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
Dimbuch®
появляется ошибка при запуске отладчика, если указать имя пакета при вызове функции из этого же пакета.


Исправил.
20 окт 20, 05:28    [22217172]     Ответить | Цитировать Сообщить модератору
 Re: Отладка процедуры с вызовом процедура в пакете  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 109
IBExpert,

Теперь на этом же примере пакета не работает для строки
n = func1();


После входа в режим отладки процедура выглядит так:

PROCEDURE proc1
  AS
    DECLARE VARIABLE n INTEGER;
  BEGIN
    /* Следующую строку пройти по F8 не удаётся.
        Ошибка

        An error was found in the application program input parameters for the SQL statement.
        Dynamic SQL Error.
        SQL error code = -804.
        Function unknown.
        FUNC1.
    */
    n = func1();

    -- Эта строка заработала
    n = IBE$DBG$PKG$1.func1();

  END
20 окт 20, 11:33    [22217307]     Ответить | Цитировать Сообщить модератору
 Re: Отладка процедуры с вызовом процедура в пакете  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
Dimbuch®

Теперь на этом же примере пакета не работает для строки
n = func1();



Исправил.
21 окт 20, 05:39    [22217954]     Ответить | Цитировать Сообщить модератору
 Re: Отладка процедуры с вызовом процедура в пакете  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 109
IBExpert,

Спасибо! Работает!
21 окт 20, 09:27    [22218000]     Ответить | Цитировать Сообщить модератору
Все форумы / IBExpert Ответить