Гость
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown." / 15 сообщений из 15, страница 1 из 1
26.06.2014, 14:59
    #38680916
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
hi all

Скачал IBE 2014.6.16.1, запустил в нём скриптик:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create or alter procedure p1 returns(x int)
as
    declare function f1 returns int deterministic as
    begin
        return 1;
    end
begin
    x = f1();
    suspend;
end

- отработало ОК.
Открываю ХП, жамкаю F8 (т.е. иду в отладчик).
На выделенной строке получаю:
Код: plaintext
1.
2.
3.
4.
An error was found in the application program input parameters for the SQL statement.
Dynamic SQL Error.
SQL error code = -804.
Function unknown.
F1.

Что-то поломалось в ИБЭ или проблемы уже в Главной консерватории ?
...
Рейтинг: 0 / 0
26.06.2014, 15:28
    #38680962
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
Таблоид,

гм... интересно а что должен делать на F7 отладчик с детерминированными функциями, когда их вызывают второй раз? Мне кажется отладчик ещё не доводили до ума. Во вложенные процедуры отладчик входить может?
...
Рейтинг: 0 / 0
26.06.2014, 15:31
    #38680966
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
Симонов ДенисВо вложенные процедуры отладчик входить может?дык его надо научить хотя бы по F8 проскакивать... :-)
...
Рейтинг: 0 / 0
26.06.2014, 15:38
    #38680974
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
Таблоид,

вообще это проблематично. Сейчас отладчик построен так что он разбивает текст процедуры на отдельные операторы и выполняет каждый из них. В случае с вложенными функциями он не может обратится к СУБД (как с настоящими), потому как их нет в скомпилированном виде. Может IBExpert чего-нибудь и придумает.

А ещё надо ведь и в пакетах отладку вести...
...
Рейтинг: 0 / 0
26.06.2014, 17:12
    #38681086
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
Как отлаживать PSQL код, который содержит subroutines, пока непонятно совершенно. Так что можно расслабиться.
...
Рейтинг: 0 / 0
26.06.2014, 17:33
    #38681107
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
IBExpert,

а можно сделать хотя бы "проскок" его по F8 ? т.е. только вызвать эту sub-рутину и показать её результат ?
...
Рейтинг: 0 / 0
26.06.2014, 17:40
    #38681117
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
IBExpert,

в принципе то о чём говорит Таблоид можно сделать, если каждый каждый статмент выполнять не обычным запросом, а EXECUTE BLOCK с объявленными subroutines
...
Рейтинг: 0 / 0
26.06.2014, 17:52
    #38681128
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
Симонов Денисв принципе то о чём говорит Таблоид можно сделать, если каждый каждый статмент выполнять не обычным запросом, а EXECUTE BLOCK с объявленными subroutines

Да, кстати, такая мысль у меня была.
...
Рейтинг: 0 / 0
26.06.2014, 17:53
    #38681131
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
Таблоида можно сделать хотя бы "проскок" его по F8 ? т.е. только вызвать эту sub-рутину и показать её результат ?

Вот прям щас сделать? Нет, нельзя.
...
Рейтинг: 0 / 0
26.06.2014, 18:00
    #38681139
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
IBExpertТаблоида можно сделать хотя бы "проскок" его по F8 ? т.е. только вызвать эту sub-рутину и показать её результат ?Вот прям щас сделать? Нет, нельзя.хреново, чё тут сказать...
ФБ-3 бодрыми шагами идёт по планете, и sub-функции (особливо deterministic) непременно будут юзаться трудовыми массами... ну, и отладку кто-нить непременно попробует.
...
Рейтинг: 0 / 0
26.06.2014, 18:10
    #38681152
IBExpert
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
ТаблоидФБ-3 бодрыми шагами идёт по планете, и sub-функции (особливо deterministic) непременно будут юзаться трудовыми массами... ну, и отладку кто-нить непременно попробует.

Alpha 2 - это еще даже не Beta... К релизу-то сделаем, наверное. Гы :)
...
Рейтинг: 0 / 0
26.06.2014, 18:17
    #38681162
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
Таблоид,

до релиза FB3 минимум полгода ещё, за это время что-нибудь придумается. А по поводу детерминистических функций я твоё мнения не разделяю ибо пока вижу им только одно применение - в качестве констант. Подфункции возможно и будут использоваться, но не думаю что уж очень активно, а вот подпроцедуры бывают очень удобными.
И подфункции и подпроцедуры можно с успехом заменить на пакеты переместив их в тело пакета, причём на них будет накладываться куда меньше ограничений (вызов друг друга, рекурсия). Вот для пакетов пока отладчика нету, что печально...
...
Рейтинг: 0 / 0
26.06.2014, 18:25
    #38681168
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
Симонов Дениспо поводу детерминистических функций я твоё мнения не разделяю ибо пока вижу им только одно применение - в качестве констант.дык я именно так их и применяю. Проверял как-то - работает значительно быстрее, чем rdb$get_context.

Симонов Денисна них будет накладываться куда меньше ограничений (вызов друг друга, рекурсия ).0xFF. это как это ?.. покажи пример, плз...
...
Рейтинг: 0 / 0
26.06.2014, 18:31
    #38681171
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
Таблоид,
это так

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
create or alter procedure p1 returns(x int)
as
    declare function f1(i int) returns int as
    begin
        if (i<=1)
           return 1;
        return f1(i-1) * i; -- вложенная функция сейчас не умеет вызывать саму себя
    end
begin
    x = f1(5);
    suspend;
end
...
Рейтинг: 0 / 0
26.06.2014, 18:47
    #38681188
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown."
Симонов Денисвложенная функция сейчас не умеет вызывать саму себяво-во, и я про то же :-)
...
Рейтинг: 0 / 0
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Отладка ХП, имеющей sub-функцию: "SQL error code = -804. Function unknown." / 15 сообщений из 15, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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