Witam

W predykacie WHERE zapytania podaje ID artykulu, wyswietla sie lista, nastepnie biore kazda pozycje (id artykulu) i wstawiam ID- raczej podmieniam stare na nowe itd. Sprawdzam kazda galaz czy posiada galazki a te czy posiadaja potomki itd.
Potrafie to zrobic ale w PHP, niestety wydajnosc nie jest zbyt dobra, wiec probuje zoptymalizowac kod za pomoca kursorow.

Przyklad czesci kursora :

....
OPEN main_cursor

FETCH NEXT FROM main_cursor into @tmp_name_art , @id_obj, @tmp_name_def
WHILE @@FETCH_STATUS = 0
BEGIN
insert into #tree_table
SELECT ARTYKUL.NAZWA, DEFINICJA_PRODUKTU.ID_SKLADNIKA, DEFINICJA.NAZWA AS Definicja
FROM ARTYKUL DEFINICJA INNER JOIN
DEFINICJA_PRODUKTU ON DEFINICJA.ID_ARTYKULU = DEFINICJA_PRODUKTU.ID_SKLADNIKA
WHERE (ARTYKUL.ID_ARTYKULU = @id_obj)
ORDER BY ARTYKUL.NAZWA, DEFINICJA.NAZWA

FETCH NEXT FROM main_cursor into @tmp_name_art , @id_obj, @tmp_name_def 

END

CLOSE main_cursor
DEALLOCATE main_cursor

Nie wiem jak zrobic zeby petla leciala tak dlugo dopoki nie wypisze wszystkich potomkow z danej galezi, a glebokosc nie wiem jak jest, na pewno nieokreslona...