Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16

Discussione: Parametri su Function

  1. #1

    Parametri su Function

    Ciao.
    Mi sto cimentando nell'uso delle funzioni, per la realizzazioni delle parti dinamiche di un sito.
    Invece di riportare query, connessioni al db e scorrere il record set, ho creato delle funzioni che in base a dei parametri mi costruiscono la stringa della query, che poi viene passata ad una funziona che la elabora, estrai i dati, li appoggia su un recordset disconnesso, e all'interno della mia pagina mi limito a scorrere tale recordset.

    Ora però ho un problemino...man mano che sviluppo mi accorgo che una funzione magari potrebbe aver bisogno di un paramentro in più.
    Intervengo nella funziona, gestisco il passaggio del parametro... ma poi mi accorgo che in ogni punto dove richiamo tale funzione mi da errore perchè non corrisponde il numero dei parametri della funzione con quelli passati.

    Esempio:
    nella pagina ho la chiamata:
    strSql = Funzione1(par1, par2, par3)

    nel file con le funzioni ho:

    Function Funzione1(par1, par2,par3,par4,par5)

    e mi da errore perchè non corrispondoni i parametri.
    Ora, c'è un modo per fare un passaggio di parametri più puntuale, cioè una cosa del tipo:
    - passare solo quelli necessari alla chiamata della funzione
    - fare una cosa del tipo par3="ciao" (cioè nella chiamata identificare il parametro che voglio passare e dargli un valore, senza passare gli altri (che di fatto non ci sono)(esempio: strSql = Funzione1(par3="ciao")

    Come posso fare?

    Grazie per le indicazioni.

  2. #2
    no. devi passare tutti i parm. eventualmente, se la tua func è

    function pippo (par1, par2, par3)

    e hai solo par1, puoi fare

    x=pippo(par1, "","")


  3. #3
    Ok.... già questa soluzione di x=pippo(par1, "","") mi piace di più...

    Però nel mentre ho pensato a questo, vediamo se può essere una soluzione valida...

    Fare un file con solo le chiamate (1 file per ogni funzione) dove dentro metto una cosa del tipo:
    strSql = Funzione1(par1, par2, par3)

    con tutti i parametri che la funzione richiede.
    Poi nelle mie pagine metto l'include di questo file... in questo modo se devo aumentare i parametri nella funzione, li aggiungo solo nel file incluso.

    Penso potrebbe essere una soluzione valida... chiedo solo:
    tu hai scritto: x=pippo(par1, "","") ma se io mettessi x=pippo(par1, par2,par3) e valorizzassi solo par1, è sbagliato? cioè non da errore, però sintatticamente è corretto lo stesso?
    Praticamente passerei il valore assegnato a par1, e poi le altre due variabili non avrebbero valore, quindi non passerei niente....

    che ne dici?

    Grazie.
    Ciao.

  4. #4
    è la medesima cosa...ho passi dei "non-valori" con "" oppure gli passi delle variabili vuote...

    basta che poi nella function fai il controllo dei valori che ricevi

  5. #5
    Si, nella function ho messo
    if par2 <> "" and IsNumeric(par2) then aggiungi condizione

    IsNumeric ovviamente solo per i parametri numerici... in modo tale che se per qualche motivo viene passata una stringa, non considero la condizione.

    Ok, allora mi sembra che quello di fare l'include della stringa che richiama la funzione sia la cosa migliore, ci passo tutti i parametri, e poi prima di inserire l'include nel file .ASP, valorizzo i vari parametri che mi servono!

    Grazie mille!


  6. #6
    cmq caso mai nell'include ci metti solo la funzione, non "la stringa" fantomatica che stai dicendo... es:

    codice:
    Pagina da includere
    <%
    function miaFunzione(par1,par2,par3,...,parN)
    ...
    end function
    %>
    
    
    Pagina principale
    
    <%
    response.write miaFunzione("ciao","","",...,"")
    %>

  7. #7
    No scusa, ma così non risolvo niente... la chiamata e il passaggio di parametri mi sta sempre dentro le mie pagine, e quindi in N punti... se aggiungo un paramentro, devo modificare N pagine!
    E' questo che io vorrei evitare... e quindi pensavo di includere la chiamata in modo ta scriverla su un file 1 volta e aggiornare in caso solo quello!


  8. #8
    allora non ho capito che vuoi fare con quella funzione

    cmq se hai risolto buon per te


  9. #9
    Bhe, risolto.. la mia era una idea, ma se ce ne sono di migliori, ben venga....
    Provo a spiegare meglio come ho strutturato la cosa....


    pagina1.asp -> pagina contenente il codice HTML e ASP da visualizzare a video

    funzioni.asp --> componente con una funzione (ReturnRS) che dato in pasto la stringa di una query mi restituisce un recordset

    query.asp --> componente con varie funzioni (una per ogni query) che richiamate, passando vari parametri, restituiscono la stringa della query (da dare poi in pasto a funzioni.asp

    Ora, in pagina1.asp ho:
    strSql = Funzione1(par1, par2, par3) // chiamo la funzione che mi crea la stringa della query passandogli i parametri (che sta in query.asp)//

    set objRs = ReturnRS(strSql) //mi faccio restitiure il recordset e lo metto i objRs dalla funzione ReturnRS che sta in funzioni.asp //


    Il mio problema è che magari questa chiamata la metto in 20 pagine.
    Domani per una esigenza particolare mi serve che Funzione1 abbia come parametro anche par4.
    A questo punto dovrei:
    - aggiornare il file query.asp inserendo la gestione del nuovo parametro
    - modificare tutte le 20 pagine andando ad inserire il nuovo parametro, quindi cambiando in strSql = Funzione1(par1, par2, par3, par4)

    L'alternativa, per evitare di modificare tutte e 20 le pagine, che mi era venuta in mente era questa:

    - creare N file per quante sono le varie funzioni chiamate
    - in ogni file inserire la chiamata alla funzione (es: strSql = Funzione1(par1, par2, par3)
    - nel file pagina1.asp (come negli altri 20) inserire al posto di
    strSql = Funzione1(par1, par2, par3)
    l'inclusione

    dove dentro CallFunzione1.asp ho
    strSql = Funzione1(par1, par2, par3)

    A questo punto se domani devo passare un parametro in più, dovrei:
    - aggiornare il file query.asp inserendo la gestione del nuovo parametro (come prima)
    - modificare CallFunzione1.asp andando ad aggiungere par4: strSql = Funzione1(par1, par2, par3, par4)

    Così facendo modificherei solo 2 file e tutto funzionerebbe!

    Che ne dite?
    Vi fila il mio ragionamento o mi sfugge qualcosa?

    Grazie mille.
    Ciao.

  10. #10
    se un domani avrai bisogno di un quarto parametro, dovrai modificare tutte quelle pagine che dovranno passare/usare il famoso quarto parametro...

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.