Newsgroup: it.comp.lang.visual-basic
Titolo: Problema con routine

Ciao a tutti, ho gia postato richiesta di aiuto su it.comp.www.asp ma non so
se mi risponderanno, ho provato a postare anche tempo fa ma venivo
rimbalzato dal moderatore :-/
Spero mi possiate aiutare a risolvere questo problema...ora copio e incollo
il post che ho mandato sull'altro newsgroup!
------------------------------
Ciao a tutti, oggi mi è venuta la (malsana) idea di creare un forum in asp.
Mi son concentrato innanzitutto sulla parta più difficile, cioè la lettura
del database con conseguente visualizzazione gerarchica (simile a quella di
questo newsgroup).
Ora come ora si basa su 3 pagine, la pagina dei topic, dove compaiono tutti
i topic principali. Cliccando sul topic si apre un'altra finestra che mostra
l'albero di tutte le risposte e cliccando poi su uno di questi messaggi si
dovrebbe vedere la risposta. Ho lavorato molto su questo codice e a occhio
sarebbe perfetto. Ma all'apertura lo script va in timeout. Ho provato a
impostare anche il server timeout a 1000 ma, se guardo nei processi, vedo il
dllhost che lavora a palla ma non mi restituisce niente. Penso che non ci
siano errori xche, portando il codice in visual basic (sostituendo i
response.write con dei msgbox e facendo altre opportune sostituzioni, ma
lasciando inalterata la dinamica del codice) funziona tutto!!!! Mi escono
fuori i msgbox con scritto esattamente il codice html che mi avrebbe dovuto
restituire la pagina asp! Non me lo riesco a spiegare! Perchè in asp va in
timeout (sembra che qualcosa vada in loop infinito) mentre in vb, lo stesso
codice con 2 modifiche x adattarlo va benissimo??? :( AIUTOOOO
ps posto di seguito tutti e 2 i codici, quello asp e quello in vb
___________________________________
ASP
<%
sub cerca(risposta)
topic.movefirst
do while topic.eof = false
if cint(trim(topic("risposta"))) = cint(trim(risposta)) then
response.write "<tr><td><a href=javascript:openw('" & trim(topic("id")) &
"','leggi.asp')>" &  topic("titolo") & "</a></td><td>" & topic("mittente") &
"</td><td>" & topic("Ora e Data") & "</td></tr>"
call cerca(topic("id"))
topic.movenext
else
topic.movenext
end if
loop
topic.movefirst
do while topic.eof = false
if topic("id") = risposta then
exit do
end if
topic.movenext
loop
end sub
id = request.querystring("id")
sql = "select * from topic where id =" & id
set topic1 = conn.execute(sql)
response.write "<table>"
response.write "<table><tr><td>Titolo del messaggio</td><td>Inviato
Da</td><td>Data Invio</td></tr>"
response.write "<tr><td><a href=javascript:openw('" & trim(topic1("id")) &
"','leggi.asp')>" &  topic1("titolo") & "</a></td><td>" & topic1("mittente")
& "</td><td>" & topic1("Ora e Data") & "</td></tr>"
set topic1 = nothing
sql = "select * from topic where iddiscussione =" & id
set topic = conn.execute(sql)
if topic.eof = false then topic.movefirst
server.ScriptTimeout = 1000
call cerca(id)
response.write "</table>"
%>
________________________________________________________-
VB
Dim id As String
Sub cerca(risposta)
Set conn = New ADODB.connection
conn.connectionstring = "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=C:\Inetpub\wwwroot\Forum\Tabelle\Forum.mdb"
conn.open
sql = "select * from topic where iddiscussione =" & id
Set topic = conn.execute(sql)
topic.movefirst
Do While topic.EOF = False
If CInt(Trim(topic("risposta"))) = CInt(Trim(risposta)) Then
MsgBox "<tr><td><a href=javascript:openw('" & Trim(topic("id")) &
"','leggi.asp')>" & topic("titolo") & "</a></td><td>" & topic("mittente") &
"</td><td>" & topic("Ora e Data") & "</td></tr>"
Call cerca(topic("id"))
topic.movenext
Else
topic.movenext
End If
Loop
topic.movefirst
Do While topic.EOF = False
If topic("id") = risposta Then
Exit Do
End If
topic.movenext
Loop
End Sub
Private Sub Command1_Click()
Set conn = New ADODB.connection
conn.connectionstring = "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=C:\Inetpub\wwwroot\Forum\Tabelle\Forum.mdb"
conn.open
id = InputBox("inserisci iddi")
sql = "select * from topic where id =" & id
Set topic1 = conn.execute(sql)
MsgBox "<table>"
MsgBox "<table><tr><td>Titolo del messaggio</td><td>Inviato Da</td><td>Data
Invio</td></tr>"
MsgBox "<tr><td><a href=javascript:openw('" & Trim(topic1("id")) &
"','leggi.asp')>" & topic1("titolo") & "</a></td><td>" & topic1("mittente")
& "</td><td>" & topic1("Ora e Data") & "</td></tr>"
Set topic1 = Nothing
sql = "select * from topic where iddiscussione =" & id
Set topic = conn.execute(sql)
If topic.EOF = False Then topic.movefirst
Call cerca(id)
MsgBox "</table>"
End Sub

 ha
scritto:

 Ho tolto un po di roba perchè era troppo da quotare, cmq il codice ASP e il
codice VB non sono affatto uguale c'è una sostanziale differenza.
Nel codice VB rifai la query col nuovo ID, mentre nel codice ASP no, quindi
va in looop infinito sul primo record ( almeno da un primo sguardo
superficiale ).
Ciao
--------------------------------
Inviato via 
http://usenet.libero.it


  Anzi per essere precisi la chiamata ricorsiva va in "loop" infinito
