Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125

    Problema con Sub e variabile

    Ciao.

    Ho la seguente sub:

    codice:
    sub listaGuasti(cn, byRef listaGuastiOutput)
    
        SQL = "SELECT "
        SQL = SQL & " COUNT(*) AS tot "
        SQL = SQL & " FROM "
        SQL = SQL & " tbl "
        SQL = SQL & " GROUP BY DATA "
        SQL = SQL & " ORDER BY DATA asc"  
                    
    	set rs = createObject("ADODB.Recordset")
    	rs.open SQL, cn
    
    if not rs.eof then
            If CINT(rs("tot")) = 4 then	
                    strVariabile = 0           		
                    listaGuastiOutput = rs.getrows()
               else
                    strVariabile = 1
                    listaGuastiOutput = rs.getrows()		               
            end if
    end if
    
    	rs.close
    	set rs = nothing
    	
    end sub
    Perchè se in qualunque posizione della pagina asp che contiene la sub, scrivo:

    codice:
    response.write strVariabile
    La variabile sembra vuota cioè non valorizzata?

    Grazie

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Se la stampi dentro la sub la stampa?

    Roby

  3. #3
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da Roby_72
    Se la stampi dentro la sub la stampa?

    Roby
    No, nemmeno così:

    codice:
    sub listaGuasti(cn, byRef listaGuastiOutput)
    
        SQL = "SELECT "
        SQL = SQL & " COUNT(*) AS tot "
        SQL = SQL & " FROM "
        SQL = SQL & " tbl "
        SQL = SQL & " GROUP BY DATA "
        SQL = SQL & " ORDER BY DATA asc"  
                    
    	set rs = createObject("ADODB.Recordset")
    	rs.open SQL, cn
    
    if not rs.eof then
            If CINT(rs("tot")) = 4 then	
                    strVariabile = 0           		
                    listaGuastiOutput = rs.getrows()
               else
                    strVariabile = 1
                    listaGuastiOutput = rs.getrows()		               
            end if
    end if
    
                 response.write strVariabile
    
    	rs.close
    	set rs = nothing
    	
    end sub

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Ma il conteggio dei record funziona?
    Dentro l'IF ci entra?

    Roby

  5. #5
    dichiara la variabile fuori (prima) dalla sub

  6. #6
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da Roby_72
    Ma il conteggio dei record funziona?
    Dentro l'IF ci entra?

    Roby
    Si.

    Il problema è quando racchiudo la query dentro la sub... senza sub tutto va bene... non capisco che differenza c'è...

  7. #7
    Originariamente inviato da Mizushi
    Si.

    Il problema è quando racchiudo la query dentro la sub... senza sub tutto va bene... non capisco che differenza c'è...
    mizzi mizzi, la differenza c'è:


    in questo caso

    codice:
    sub ciccia()
       peso=10
    end sub
    la variabile peso vive solo dentro la sub (è una questione di ottimizzazione, se ci pensi è giusto che sia così)

    in quest'altro caso

    codice:
    dim peso
    
    sub ciccia()
       peso=10
    end sub
    la variabile peso vive dentro la pagina (oltre che nella sub)

    in tutti e due i casi usare la variabile peso fuori dalla sub è un errore dal punto di vista della corretta programmazione


  8. #8
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Non so se ho capito bene, ma anche così non stampa nulla:

    codice:
    Dim strVariabile
    
    sub listaGuasti(cn, byRef listaGuastiOutput)
    
        SQL = "SELECT "
        SQL = SQL & " COUNT(*) AS tot "
        SQL = SQL & " FROM "
        SQL = SQL & " tbl "
        SQL = SQL & " GROUP BY DATA "
        SQL = SQL & " ORDER BY DATA asc"  
                    
    	set rs = createObject("ADODB.Recordset")
    	rs.open SQL, cn
    
    if not rs.eof then
            If CINT(rs("tot")) = 4 then	
                    strVariabile = 0           		
                    listaGuastiOutput = rs.getrows()
               else
                    strVariabile = 1
                    listaGuastiOutput = rs.getrows()		               
            end if
    end if
    
                 response.write strVariabile
    
    	rs.close
    	set rs = nothing
    	
    end sub

  9. #9
    dentro la sub, subito dopo

    sub listaGuasti(cn, byRef listaGuastiOutput)

    aggiungi

    strVariabile = -99

    e prova

  10. #10
    Utente di HTML.it L'avatar di Mizushi
    Registrato dal
    Aug 2005
    Messaggi
    1,125
    Originariamente inviato da optime
    dentro la sub, subito dopo

    sub listaGuasti(cn, byRef listaGuastiOutput)

    aggiungi

    strVariabile = -99

    e prova
    Niente, non stampa niente.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.