Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.10;
Скачать: CL | DM;

Вниз

Иерархия в IB   Найти похожие ветки 

 
Seven ©   (2003-06-15 10:23) [0]

Ув. коллеги. Есть таблица со след. структурой
GOODS
(ID NUMERIC,
NAME VARCHAR(128),
MASTER_ID NUMERIC REFERENCES GOODS(ID)
)
Если есть след. записи:
1 Комплектующие NULL
2 Мат. плата 1
3 IWill 2
4 BD v133 3

Хотелось бы в Select-e выводить так:
Комплектующие NULL\Мат. плата\IWill\BD v133
В Оракле есть прекрасная конструкция
Connect by prior, Start with
Можно ли как-то средствами IB это решить?
Хотя бы выводить верхний уровень + последний ?


 
Sergey Masloff   (2003-06-15 10:34) [1]

Seven ©
>В Оракле есть прекрасная конструкция
>Connect by prior, Start with
За наличие таких возможностей в Oracle приходится платить (не только и не столько деньгами)
В IB такую функциональность можно достичь используя рекурсию в хранимой процедуре.


 
Sergey Masloff   (2003-06-15 10:55) [2]

Что-то вроде этого:
CREATE PROCEDURE DICTI_DOWN (
PLEVEL INTEGER,
PPARENTISN NUMERIC(15,4))
RETURNS (
F_LEVEL INTEGER,
F_ISN NUMERIC(15,4),
F_PARENTISN NUMERIC(15,4),
F_SHORTNAME VARCHAR(40)
)
AS
begin
for select
d.ISN ,
d.PARENTISN ,
d.SHORTNAME
from dicti d
where d.parentisn = :pPARENTISN

into
:F_ISN ,
:F_PARENTISN ,
:F_SHORTNAME

do
begin
F_LEVEL=pLevel;
suspend;
for select
F_LEVEL ,
F_ISN ,
F_PARENTISN,
F_SHORTNAME
from DICTI_DOWN( :F_LEVEL + 1, :F_ISN)
into
:F_LEVEL ,
:F_ISN ,
:F_PARENTISN ,
:F_SHORTNAME
do
begin
suspend;
end
end
end


 
Seven ©   (2003-06-16 11:33) [3]

Спасибо большое,
все получилось - оформир
процедурой (базу для процедуры
взял здесь же из статьи про иерархию)
и вызываю в Делфе на CalcFields - работает быстро



Страницы: 1 вся ветка

Текущий архив: 2003.07.10;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
14-31451
shuba
2003-06-21 10:29
2003.07.10
Регулярные выражения


3-31108
denis24
2003-06-17 14:41
2003.07.10
sql.add....


3-31102
SSAlex
2003-06-17 13:22
2003.07.10
Доступ до данных в форме Access.


3-31071
rosl
2003-06-16 02:40
2003.07.10
не работает поиск


9-31064
Кен
2003-01-24 02:20
2003.07.10
GLScene Какие есть редакторы для создания, редактирования, конвер