Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Отладка ХП [D5, Firebird]


jack128 ©   (2003-10-14 13:47:00) 

День добрый.
Есть постое дерево (адреса) ADDRESSES
id integer,
name varchar(255),
parent_id integer

есть ХП которая теоретически должна вернуть ПОЛНОЕ имя данного узла
например
id name parent_id
0 имя1 null
1 имя2 0

select * from GET_FULL_ADDRESS_NAME(1, ", ") должно вернуть
"имя1, имя2"
но почему то результат всегда Null. В чем дело?

CREATE PROCEDURE GET_FULL_ADDRESS_NAME (
ADDRESS_ID INTEGER,
SEPARATOR_CHAR VARCHAR(10))
RETURNS (
ADDRESS_NAME VARCHAR(512))
AS
DECLARE VARIABLE TEMP VARCHAR(255);
DECLARE VARIABLE IS_FIRST_STEP INTEGER;
begin
if (address_id is null) then exit;
if (separator_char is null) then
separator_char = "";
is_first_step = 1;
address_name = "";
while (address_id is not null) do
begin
select parent_id, name
from addresses
where id = :address_id
into address_id, temp;

if (temp is null) then exit;
if (is_first_step = 1) then
begin
address_name = temp;
is_first_step = 0;
end
else
address_name = temp || separator_char || address_name;
end
end

Кстати отладчик ibexpert"а показывает, что все OK


jack128   (2003-10-14 13:57:00) [1]


> suspend напиши.
угу - в этом было дело. Спасибо


Alexandr   (2003-10-14 13:52:00) [2]

suspend напиши.
а как вызываешь то?


Наверх

Титульная страница Поиск, карта сайта Написать письмо