[ vujkev @ 25.04.2005. 19:02 ] @
Tabeli pod nazivom tblFolders ima ovakvu strukturu: 1. IDFoldera INT Primery Key IDENTITY 2. Nazivfoldera NCHAR 200 3. OpisFoldera NTEXT 4. IDParentFoldera INT 5. IDDiska INT u toj tabeli se nalazi spisak svih foldera u nekom disku. Ukoliko je folder u ROOT-u diska polje IDParentFoldera je NULL, a ako nije tu je upisan odgovarajući ID Interesuje me kako na osnovu naziva nekog foldera i njegovog ID-a naći celu putanju do ROOT foldera. Primera radi pretrazujem sve foldere sa nazivom "Test". Kao rezultat dobijem samo 1 folder čiji je ID = 213. Sad na osnovu tog ID-a treba naći putanju do ROOT-a. Napisao sam jednu SP koja radi baš to što mi treba, ali me interesuje da li je to OK ili postoji bolje rešenje. SP sledi Code: CREATE PROCEDURE dbo.spFindPath ( @IDFoldera INt ) as declare @IDParent Int create table #Temp ( IDFoldera Int, IDParentFoldera Int ) select @IDParent=IDParentFoldera from tblFolders where idfoldera = @IDFoldera insert into #temp (IDFoldera, IDParentFoldera) values (@IDFoldera, @IDparent) while @IDParent is not null begin select @IDParent=IDParentFoldera, @IDFoldera=IDFoldera from tblFolders where idfoldera = @IDParent insert into #temp (IDFoldera, IDParentFoldera) values (@IDFoldera, @IDparent) end select * from #temp GO |