"йЗПТШ зПТВПОПУ" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
"Vlad Khorsun" <[EMAIL PROTECTED]> сообщил/сообщила в новостях следующее:
news:[EMAIL PROTECTED]
"йЗПТШ зПТВПОПУ" ...
Вопрос не мой,
http://forum.vingrad.ru/forum/s/47013e7cda364d210e5f6c9487fed36c/topic-188462.html
у автора Сервер FireBird2.0.
Суть проблемы: при вызове рекурсивной процедуры ADD_EXTRA при большом уровне
вложенности сервер
возвращает ошибку
Есс-но, что тут неожиданного ?
Нашел на скл.ру http://www.sql.ru/forum/actualthread.aspx?bid=2&tid=81334
писали что должны были исправить ещё в 1.5
А при чём тут одно к другому ?
У меня WI-T2.1.0.16780 Firebird 2.1 Beta 2
в атаче пример, по сообщению с форума, может не совсем корректно сделал, но
ошибка и у меня
И где вызов процедуры и данные в таблицах ?
Вызова процедуры нет, просто в експерте вызываю отладчик задаю basebrice_id =1 и partner_id = 1, остальные параметры можно задать
произвольными числами, данные сделал датагенератором из експерта в
Extra
ID автоинкремент от 1 до 100
PARTNER_ID автоинкремент от 0 до 99
BASEPRICE_ID автоинкремент от 99 до 0
остальные поля случайными числами
BASEPRICE
ID автоинкремент от 1 до 100
PARID автоинкремент от 1 до 100
вот и все данные
Офигительный тест кейс... нельзя было эти данные в скрипт сразу извлечь ?
...ладно, сгенерил
Если нужно могу попробовать подергать автора на этот счет???
Подёргай его на счёт :
а) задания вопросов в нормальных форумах
б) наличия условия выхода из рекурсии
в) пропущенного NOT в IF (EXISTS ...) в процедуре ADD_EXTRA (ТЛ сильно не
напрягал)
Откуда ты решил, что вылетает на первой же итераци ? Ты сообщение об ошибке
видел ?
Со стеком вызовов, который туда целиком просто не влез...
Кстати, для ценителей - добавляем в ADD_EXTRA вместо не нужного там
SUSPEND'а :
WHEN ANY DO
BEGIN
SELECT FIRST 1 1 FROM MON$ATTACHMENTS INTO CURID;
EXCEPTION;
END
Вызываем
EXECUTE PROCEDURE ADD_EXTRA (1, 0, 0, 1, 0, 0)
тут будет ошибка
а тут -
SELECT * FROM MON$CALL_STACK
можно посмотреть сколько вызовов реально выполнилось
Всё это, есс-но, на 2.1 :-P
--
Хорсун Влад