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
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
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
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Da je važnije biti ljubazan nego biti u pravu