Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Da li je ovaj kod dobar?

[es] :: MS SQL :: Da li je ovaj kod dobar?

[ Pregleda: 791 | Odgovora: 2 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vujkev
Darko Vujičić
Telekom Srbija AD
Beograd

Član broj: 8072
Poruke: 798
*.bg.wifi.vline.verat.net.

Sajt: www.suvu.co.yu


Profil

icon Da li je ovaj kod dobar?25.04.2005. u 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


Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
25.04.2005. u 19:02 

jablan
Mladen Jablanović
Beograd

Član broj: 8286
Poruke: 3091
*.yubc.net.

Sajt: blog.radioni.ca


Profil

icon Re: Da li je ovaj kod dobar?26.04.2005. u 08:18
To je to, samo što na kraju kad radiš onaj select iz temp tabele, generalno ne znaš u kom će redosledu da ti se vrate slogovi, a to je tebi, koliko mi se čini, dosta bitno. Rešenje je da dodaš jedno identity polje u temp tabelu, i da dodaš jedan order by po njemu u poslednji select.
26.04.2005. u 08:18 

vujkev
Darko Vujičić
Telekom Srbija AD
Beograd

Član broj: 8072
Poruke: 798
*.bg.wifi.vline.verat.net.

Sajt: www.suvu.co.yu


Profil

icon Re: Da li je ovaj kod dobar?27.04.2005. u 00:24
Da da da. Toga se nisam ni setio a bas mi je bitno. Hvala
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
27.04.2005. u 00:24 

[es] :: MS SQL :: Da li je ovaj kod dobar?

[ Pregleda: 791 | Odgovora: 2 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.