morpheus72
25-09-2003, 14:16
Sto creando un db in cui memorizzo la srtuttura di un albero:
Il db e' fatto cosi:
ID_NODO | ID_SUPERNODO | LIVELLO_ANNIDAMENTO
Non riesco a ricostruire l'albero a partire dal db.
Allego i file
e posto il codice che uso:
<%@LANGUAGE="VBSCRIPT"%>
<!--#INCLUDE VIRTUAL="../include/connessione_db.inc"-->
<%
Call sApriConnection(connDB,sDSN) 'Apre la connsessione al database
Dim SQLMAX 'Il massimo livello di annidamento
SQLMAX = "Select MAX(Livello_Annidamento) as massimo from Struttura"
Set rsMax = connDB.Execute(SQLMAX)
Dim maxLivAnnidamento 'Variabile in cui memorizzo il massimo livello di annidamento
maxLivAnnidamento = rsMax("massimo")
call sChiudiRS(rsMax)
Dim SQLQUERY 'La query per la prima passata
SQLQUERY = "SELECT * FROM [Struttura] WHERE Livello_Annidamento=0 ORDER BY [priorita]"
Dim rs
Set rs = connDB.Execute(SQLQUERY)
rs.moveFirst
do while not(rs.eof)
idSuperNodo = rs("Id_Nodo")
nomeNodo = rs("Nome_Nodo")
Response.Write(nomeNodo & "<br>")
Dim livelloAnnidamentoCorrente 'Il livello di annidamento corrente
for livelloAnnidamentoCorrente = 1 to maxLivAnnidamento
Dim SQLVARIABLIE
SQLVARIABILE = "SQL" & livelloAnnidamentoCorrente
SQLVARIABILE = "SELECT * FROM [Struttura] WHERE Livello_Annidamento=" & livelloAnnidamentoCorrente & " ORDER BY [priorita]"
Dim rsVariabile
rsVariabile = "rs" & livelloAnnidamentoCorrente
Set rsVariabile = connDB.Execute(SQLVARIABILE)
rsVariabile.moveFirst
do while not(rsVariabile.eof)
idNodoCorrente=rsVariabile("Id_Nodo")
idSuperNodoCorrente=rsVariabile("Id_Super_Nodo")
if (idSuperNodo = idSuperNodoCorrente) then
Response.Write(rsVariabile("Nome_Nodo") & "<br>")
end if
rsVariabile.movenext
loop
call sChiudiRS(rsVariabile)
Next
rs.movenext
loop
call sChiudiRS(rs)
call sChiudiConnection(connDB)
%>
DOVE SBAGLIO???
HELP!!!!!
Il db e' fatto cosi:
ID_NODO | ID_SUPERNODO | LIVELLO_ANNIDAMENTO
Non riesco a ricostruire l'albero a partire dal db.
Allego i file
e posto il codice che uso:
<%@LANGUAGE="VBSCRIPT"%>
<!--#INCLUDE VIRTUAL="../include/connessione_db.inc"-->
<%
Call sApriConnection(connDB,sDSN) 'Apre la connsessione al database
Dim SQLMAX 'Il massimo livello di annidamento
SQLMAX = "Select MAX(Livello_Annidamento) as massimo from Struttura"
Set rsMax = connDB.Execute(SQLMAX)
Dim maxLivAnnidamento 'Variabile in cui memorizzo il massimo livello di annidamento
maxLivAnnidamento = rsMax("massimo")
call sChiudiRS(rsMax)
Dim SQLQUERY 'La query per la prima passata
SQLQUERY = "SELECT * FROM [Struttura] WHERE Livello_Annidamento=0 ORDER BY [priorita]"
Dim rs
Set rs = connDB.Execute(SQLQUERY)
rs.moveFirst
do while not(rs.eof)
idSuperNodo = rs("Id_Nodo")
nomeNodo = rs("Nome_Nodo")
Response.Write(nomeNodo & "<br>")
Dim livelloAnnidamentoCorrente 'Il livello di annidamento corrente
for livelloAnnidamentoCorrente = 1 to maxLivAnnidamento
Dim SQLVARIABLIE
SQLVARIABILE = "SQL" & livelloAnnidamentoCorrente
SQLVARIABILE = "SELECT * FROM [Struttura] WHERE Livello_Annidamento=" & livelloAnnidamentoCorrente & " ORDER BY [priorita]"
Dim rsVariabile
rsVariabile = "rs" & livelloAnnidamentoCorrente
Set rsVariabile = connDB.Execute(SQLVARIABILE)
rsVariabile.moveFirst
do while not(rsVariabile.eof)
idNodoCorrente=rsVariabile("Id_Nodo")
idSuperNodoCorrente=rsVariabile("Id_Super_Nodo")
if (idSuperNodo = idSuperNodoCorrente) then
Response.Write(rsVariabile("Nome_Nodo") & "<br>")
end if
rsVariabile.movenext
loop
call sChiudiRS(rsVariabile)
Next
rs.movenext
loop
call sChiudiRS(rs)
call sChiudiConnection(connDB)
%>
DOVE SBAGLIO???
HELP!!!!!