![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Что за трабл? [D6, IB6.x, FireBird]
Соловьев © (2003-05-15 10:28:00)Не могу догнать в чем трабла. Процедура получения всех детей родителя:
CREATE PROCEDURE GET_CHILD (
ID_NODE INTEGER)
RETURNS (
ID INTEGER)
AS
declare variable temp_id integer;
BEGIN
temp_id = :id_node;
for
select "id"
from "management_structure"
where "id" = :temp_id
into :temp_id
do
begin
if (not id is null) then
execute procedure "GET_CHILD"(:temp_id);
SUSPEND;
end
END
ругается, на строку
execute procedure "GET_CHILD"(:temp_id);
типа неверный параметр у процедуры.
версия FB 6.2.2.908
Соловьев (2003-05-15 13:08:00) [1]все, спасибо Johnmen ©. и еще сайту http://www.krista.ru/ib/recursion.html
Danilka (2003-05-15 12:27:00) [2]честно говоря, не могу врубиться в этот код:
select "id"
from "management_structure"
where "id" = :temp_id
into :temp_id
может надо что-то типа:
select "id"
from "management_structure"
where " parent_id" = : ID_NODE
into :temp_id
Rad (2003-05-15 12:08:00) [3]А разве надо название процедуры заключать в кавычки, если создается она с названием без кавычек?
Johnmen (2003-05-15 11:06:00) [4]...и делать SELECT из процедуры...
Johnmen (2003-05-15 10:53:00) [5]Сначала надо создать "пустую" процедуру, а потом "наполнить содержимым" с помощью ALTER PROCEDURE.
Соловьев (2003-05-15 10:47:00) [6]
> if (not id is null) then
тут я стормозил вместо id надо :temp_id.
Мастаки, где я еще стормознул? помогите. вроде утро, а я торможу :(