ALTER PROCEDURE EXPAND (AnID VARCHAR(32), Self INTEGER)
RETURNS (ID VARCHAR(32), PARENT_ID VARCHAR(32), TREE_LEVEL INTEGER)
AS
BEGIN
TREE_LEVEL = 0;
IF (:Self <> 0) THEN
BEGIN
ID = :AnID;
SUSPEND;
END
FOR SELECT KOD_SUBUSER, :AnID FROM STRUCT_USERS
WHERE KOD_USER = :AnID INTO :ID, :PARENT_ID
DO FOR SELECT ID, :PARENT_ID, TREE_LEVEL+1 FROM EXPAND (:ID, 1) INTO :ID, :PARENT_ID, :TREE_LEVEL
DO SUSPEND;
END;
Иерархия в FireBird 1.5
Сильно не ругайте, 2-й день как занимаюсь InterBase...
Используешь стандартный клиент interbase? Попробуй IBExpert, намного нагляднее и удобнее...
Цитата: Gluckodrom
Используешь стандартный клиент interbase? Попробуй IBExpert, намного нагляднее и удобнее...
IBExpert и использую... токо какая разница то... хоть в блокноте запрос писать...
а на самом деле все решилось объединением ХП с той же таблицей из которой идет выборка... немного через ж... но работает