Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732

    ma è possibile aprire dei recodset, ed utilizzarli all'interno di altre funzioni?

    salve... avrei bisogno di avere delle funzioni che aprono dei recordset, e all'interno di ogni recorset dovrei aprire un'altra funzione che a sua volta apre altri recorset: un casino.

    il codice che uso ora è questo:

    codice:
    <table>
    <%
    static sub mostrasedi()
    	response.write "<table id='sede" & rstiposede("idtiposede") & "' style='display:none; margin-left:30px;'>"
        SQLsede = "SELECT * FROM T_Sedi WHERE idtiposede = " & rstiposede("idtiposede")
    	set rssede = conn.execute(SQLsede)
    	while not rssede.eof
    		response.write "<tr><td>"
    			%>')"><%=rssede("nome")%><%
    			mostraservizi()
    		response.write "</td></tr>"
    	rssede.movenext
    	wend
    	set rssede = nothing
    	response.write "</table>"
    end sub
    
    static sub mostraservizi()
    	response.write "<table id='servizio" & rssede("idsede") & "' style='display:none; margin-left:30px;'>"
        SQLservizio = "SELECT * FROM T_Servizi WHERE idsede = " & rssede("idsede")
    	set rsservizio = conn.execute(SQLservizio)
    	while not rsservizio.eof
    		response.write "<tr><td>"
    			%>')"><%=rsservizio("nomeservizio")%><%
    			'mostraoperatori()
    		response.write "</td></tr>"
    	rsservizio.movenext
    	wend
    	set rsservizio = nothing
    	response.write "</table>"
    end sub
    
    SQLrstiposede = "SELECT * FROM T_TipoSede ORDER BY idtiposede"
    set rstiposede = conn.execute(SQLrstiposede)
    while not rstiposede.eof
    	response.write "<tr><td>"
    	    %>');"><%=rstiposede("tiposede")%><%
    		mostrasedi()
    	response.write "</td></tr>"
    rstiposede.movenext
    wend
    set rstiposede = nothing
    %>
    </table>
    però ho un errore:
    Microsoft VBScript runtime error '800a000d'

    Type mismatch: 'rssede'

    /afpforum/csac/pc/default.asp, line 41

    è possibile creare una struttura del genere? :master:

  2. #2
    Utente di HTML.it L'avatar di viki1967
    Registrato dal
    Feb 2003
    Messaggi
    1,757
    Sulle query di tipo "select" normalmente il recordset deve essere dichiarato, aperto e deve scorrere... tu invece fai soltanto:

    codice:
    set rssede = conn.execute(SQLsede)

    codice:
    'Dichiarazione recordset:
    Set objRS = Server.CreateObject("ADODB.Recordset")
    
    'Apertura recordset:
    objRS.Open tuaquery, tuaconnessione, 3, 3
    
    ...
    
    'Chiusura recordset:
    objRS.Close
    
    'Distruzione recordset:
    Set objRS = Nothing

    A S P : tutto il resto è noia...
    L I N U X : forse mi "converto"...

  3. #3
    il recordset deve essere dichiarato all'esterno delle funzioni


    codice:
    dim recordset
    
    definisco sub 1
    definisco sub 2
    
    set recordset=server.createobject("adodb.recordset")
    recordset.open...
    
    sub1()
    sub2()
    
    recordset.close: set recordset=nothing
    dovrebbe andare così

    puoi anche pensare di passare il recordset alla funzione/sub usando public sub miasub( byref objRec)


  4. #4
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    Originariamente inviato da santino83
    il recordset deve essere dichiarato all'esterno delle funzioni


    codice:
    dim recordset
    
    definisco sub 1
    definisco sub 2
    
    set recordset=server.createobject("adodb.recordset")
    recordset.open...
    
    sub1()
    sub2()
    
    recordset.close: set recordset=nothing
    dovrebbe andare così

    puoi anche pensare di passare il recordset alla funzione/sub usando public sub miasub( byref objRec)

    il problema è che all'interno di ogni funzione devo aprire un nuovo recodset, ed utilizzare anche quello aperto nella funzione precedente...

    il metodo di byref objRec non l'ho capito molto a dire il vero (non l'ho mai usato e non lo conosco ): basta metterlo quando apro la subroutine o devo passarlo anche quando la richiamo?

  5. #5
    Utente di HTML.it L'avatar di lnessuno
    Registrato dal
    Feb 2002
    Messaggi
    2,732
    aaaaaaaaaah svelato l'arcano, accidenti!

    è bastato seguire il consiglio di asp

    all'inizio del codice ho semplicemente dichiarato tutti i recordset e ora funziona

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.