Hier mal nen anderer Ansatz bei demnur die Daten geholt werden
Die auch n�tig sind
<%@ Language=VBScript %>
<!-- #INCLUDE FILE="global/data.asp" -->
<%
Function GetVater(Vater)
GetVater=0
runsql1(" select * from Tabelle where Kind=" & Kind )'(in diese
fall 13)
if not rs1.eof then
'hier den Vater in ein Array schreibe rs("Vater")
GetVater=rs1("Vater")
end if
rs1.close
End function
%>
<html>
<head>
</head>
<%
'Hier der Aufruf:
Vater=13
while not Vater=0
if vater<>0 then
Response.write(vater)
Response.write(" - ")
end if
vater=getvater (0,vater)
wend
%>
</body>
</html>
Wobei data.asp und so und den rs aufruf musste noch anpassen...
Gru�
ralf
-----Original2 Message-----
From: Christoph Biegner [mailto:[EMAIL PROTECTED]]
Sent: Donnerstag, 18. Oktober 2001 15:39
To: ASP Datenbankprogrammierung
Subject: [aspdedatabase] RE: Feststellen, ob a ein Kind von b ist....
Hallo!
Ich habe hier einen L=F6sungsansatz mit einer tempor=E4ren Tabelle. =
Idealerweise w=FCrde man sowas mit rekursion l=F6sen, aber das ist wohl
in SQL nicht = m=F6glich.
Also:
DROP TABLE dbo.relations
GO
DROP procedure dbo.GetRelations
GO
create table dbo.relations
(
vater int NOT NULL,
kind int NOT NULL
)
GO
INSERT INTO relations VALUEs(3,7)
INSERT INTO relations VALUEs(3,8)
INSERT INTO relations VALUEs(4,9)
INSERT INTO relations VALUEs(7,12)
INSERT INTO relations VALUEs(12,13)
GO
CREATE procedure dbo.GetRelations
@P_child int
AS
SET NOCOUNT ON
DECLARE @L_count int
DECLARE @L_count2 int
CREATE TABLE #temp
(
relationID INT NOT NULL
)
INSERT INTO #temp VALUES(@P_child)
SELECT @L_count =3D 0
SELECT @L_count2 =3D count(*) FROM #temp
WHILE @L_count < @L_count2
BEGIN
SELECT @L_count =3D @L_count2
INSERT INTO #temp
SELECT vater
FROM relations A
INNER JOIN #temp B ON A.kind =3D B.relationID
LEFT OUTER JOIN #temp C ON A.vater =3D C.relationID
WHERE C.relationID IS NULL
SELECT @L_count2 =3D count(*) FROM #temp
END
SELECT * FROM #temp
GO
GetRelations 13
HTH,
Christoph
> -----Original Message-----
> From: Mayer, Stefan [mailto:[EMAIL PROTECTED]]
> Sent: Thursday, October 18, 2001 3:23 PM
> To: ASP Datenbankprogrammierung
> Subject: [aspdedatabase] Feststellen, ob a ein Kind von b ist.... =20
>=20
> ich habe in einer Tabelle Vater-Kind-Beziehungen abgebildet. Wie kann
> ich ganz leicht (mit m=F6glichste einer einzigen Abfrage)=20
> feststellen, ob
> ein beliebiger Wert ein Vorfahre von a ist.
>=20
>=20
> Wert - Kind
> 3 | 7
> 3 | 8
> 4 | 9
> ...
> 7 | 12
> 12 | 13
>=20
>=20
> Wenn ich nun den Wert "13" habe, m=F6chte ich als Ergebnis der =
Abfrage
> folgendes bekommen:
>=20
> 13
> 12
> 7
> 3
>=20
> Stefan.....
>=20
> | [aspdedatabase] als [EMAIL PROTECTED] subscribed
> | http://www.aspgerman.com/archiv/aspdedatabase/ =3D Listenarchiv Sie
> | k=F6nnen sich unter folgender URL an- und abmelden: =
http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
>=20
| [aspdedatabase] als [EMAIL PROTECTED] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ =3D Listenarchiv Sie
| k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp
| [aspdedatabase] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspdedatabase/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspdedatabase.asp