Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047

    Funzioni, passaggio di parametri e riferimenti

    Ho 2 file, il primo con le 2 funzioni

    codice:
    Function OpenConnection(str, path)
    	Dim ConnectionString
    	ConnectionString = str & Server.MapPath(path)
    	set Connection = Server.CreateObject("ADODB.Connection")
    	Connection.Open ConnectionString
    	OpenConnection = Connection	
    End Function
    
    Sub CloseConnection(conn)
    	conn.Close 
    	set conn = Nothing	
    End Sub
    e il file "main" dal quale chiamo

    codice:
    connection = OpenConnection(STRINGA, PATH)
    Call CloseConnection(connection)
    ovviamente quando vado a eseguire CloseConnection mi dice che si aspetta un oggetto "conn"...
    In sostanza, come si fa in ASP/VB a passare un riferimento a una funzione? Io voglio passare il riferimento alla connessione già aperta.
    Grazie
    Ciao
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  2. #2
    Basta

    codice:
    Sub CloseConnection()
    se vuoi usare un riferimento ad una variabile (o oggetto) dichiarato ed usato nel file allora è sufficiente chiamarlo anche nella funzione o procedura senza passarlo come parametro formale.

  3. #3
    Utente di HTML.it L'avatar di Baol74
    Registrato dal
    Jul 2002
    Messaggi
    2,004
    codice:
    Function OpenConnection(str, path)
    	Dim ConnectionString
    	ConnectionString = str & Server.MapPath(path)
    	set Connection = Server.CreateObject("ADODB.Connection")
    	Connection.Open ConnectionString
    	Set OpenConnection = Connection	
    End Function
    
    Sub CloseConnection(ByRef conn)
    	conn.Close 
    	set conn = Nothing	
    End Sub
    
    Set oConn = OpenConnection(ConnString,Path)
    CloseConnection(oConn)
    comunque ti darà errore nell'apertura della connessione.

    Usa se per far puntare una variabile ad un oggetto
    Usa byRef per passare il riferimento in memoria all'oggeto

    ciao

  4. #4
    Utente di HTML.it L'avatar di marco_c
    Registrato dal
    Jun 2004
    Messaggi
    1,047
    comunque ti darà errore nell'apertura della connessione.
    Perchè dovrebbe darmi errore?
    Non sapevo proprio dell'esistenza di ByRef. Lo proverò. Ad occhio sembra proprio quello che cercavo... spero.

    Non so.. io vengo dal C++ e là sono tutte funzioni a cui passi dei riferimenti.. passando ad ASP/VBscript trovo molta difficoltà nell'usare funzioni e passare diversi oggetti con nomi diversi, mi sembra quasi "meno potente". Che ne pensate?

    Cmq grazie per l'aiuto
    Gli uomini si dividono in due categorie: i geni e quelli che dicono di esserlo. Io sono un genio.

  5. #5
    Utente di HTML.it L'avatar di 99eros9
    Registrato dal
    Jan 2003
    Messaggi
    2,637
    Gli argomenti possono essere passati alle procedure in due modi:
    a) Come valori, attraverso la parola chiave ByVal;
    b) Come riferimenti, attraverso la parola chiave ByRef.

    Quando un argomento viene passato come valore, si crea una copia del valore dell’argomento che viene passata alla procedura chiamata.
    Quando l’argomento viene passato come valore, le modifiche alla copia della procedura chiamata non influiscono sul valore della variabile originale; invece se l’argomento viene passato come riferimento, il caller consente alla procedura chiamata di accedere e modificare i dati originali.
    Tala är silver men tiga är guld!
    Pubblica il tuo curriculum
    Segnala il tuo sito
    Ancl

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.