Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    Variabili d'applicazione

    Mi farebbe piacere che qualcuno più esperto mi dicesse quale sia l'operazione più giusta da fare in termini di risparmio di carico di lavoro sul server.
    In tutte le applicazioni che realizzo io ho sempre memorizzato la stringa di connessione al db all'interno di una variabile applicazione, in modo da poterla richiamare da qualsiasi pagina. La variabile di applicazione l'ho sempre inizializzata e settata all'interno del global.asa in questo modo:
    codice:
    Sub Application_OnStart     
    	Application.Lock
    	Application("strConnString") = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("../cartella_db/nome_db.mdb")
    	Application.UnLock
    	
    End Sub
    Adesso, volendo rendere il tutto ancora più dinamico e facilmente configurabile ho pensato di realizzare un file config.asp dove settare e inizialliare la stringa di connessione al db in questo modo:
    codice:
    '------------------------------------------------------------------------------------------------
    ' SCRIVERE LA DIRECTORY SOTTO CUI SI TROVA L'APPLICAZIONE; LASCIARE VUOTO SE SI TROVA SOTTO LA ROOT
    '------------------------------------------------------------------------------------------------
    percorso_applicazione = ""
    
    '------------------------------------------------------------------------------------------------
    ' NOME DB
    '------------------------------------------------------------------------------------------------
    nome_db = "nome_db.mdb"
    
    '------------------------------------------------------------------------------------------------
    ' PERCORSO DB
    '------------------------------------------------------------------------------------------------
    percorso_db = Server.MapPath("../cartella_db/" & nome_db)
    
    '------------------------------------------------------------------------------------------------
    ' STRINGA CONNESSIONE PER DB ACCESS
    '------------------------------------------------------------------------------------------------
    strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & percorso_db
    
    '------------------------------------------------------------------------------------------------
    ' PREFISSO X LE TABELLE DEL DB
    '------------------------------------------------------------------------------------------------
    prefix_table = "xxx_"
    Adesso, includendo questa pagina config.asp in ogni pagina dell'applicazione, le variabili vengono riassegnate ogni qual volta si carica una qualsiasi pagina.
    Tutto questo, visto che si tratta di sole quattro variabili, comporta notevole spreco di memoria e carico di server rispetto al procedimento utilizzato tramite global.asa?
    Ringrazio anticipatamente quanti vorranno aiutarmi a chiarire questo mio dubbio.
    saluti

  2. #2
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    application.lock non ha senso usarlo nell'application_onstart
    poi, meglio mettere la stringa nell'application che in un file esterno. eliminando l'inclusione in tutte le pagine, risparmi risorse
    Tutti vogliono parlare, nessuno sa ascoltare.

  3. #3
    grazie x il prezioso suggerimento gioba.
    l'application la blocco perchè ci sono anche altre operazioni da eseguire all'interno di Application_On_Start.
    un ultima cosa, ma in questo modo, per configurare il global.asa con i propri parametri, si deve per forza maggiore editare il file global.asa manualmente, giusto?
    Non si può creare ad esempio una specie di installazione dell'applicazione dove l'utente tramite un form comunica i propri parametri (tipo nome db, posizione cartella_db, etc...) e quando invia il form viene sovrascritto il global.asa con i nuovi parametri?

  4. #4
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    Originariamente inviato da Tyler Durden7
    grazie x il prezioso suggerimento gioba.
    l'application la blocco perchè ci sono anche altre operazioni da eseguire all'interno di Application_On_Start.
    la sun application_onstart viene eseguita una volta sola al riavvio della macchina (o dell'IIS). quindi tutte quelle operazioni che devi eseguire sono eseguite in quel momento e basta. quello che viene messo in memoria, resta fino a che non viene riavviato l'IIS.

    un ultima cosa, ma in questo modo, per configurare il global.asa con i propri parametri, si deve per forza maggiore editare il file global.asa manualmente, giusto?
    Non si può creare ad esempio una specie di installazione dell'applicazione dove l'utente tramite un form comunica i propri parametri (tipo nome db, posizione cartella_db, etc...) e quando invia il form viene sovrascritto il global.asa con i nuovi parametri?
    di quale utente stai parlando? ogni sito può avere un solo global.asa, e va messo nella root
    Tutti vogliono parlare, nessuno sa ascoltare.

  5. #5
    si, so che ogni sito può avere un solo global.asa e che va messo nella root. ma la mia domanda era un'altra.
    cerco di essere più chiaro: volendo rendere l'applicazione pubblica, farla scaricare e utilizzare anche ad altri utenti, ogni utente dovrà poi configurare il file global.asa in base alle proprie caratteristiche del server, nome db, eventuale password db e tutto ciò che può essere configurabile.
    mi chiedevo se era possibile evitare la configurazione manuale dell'utente direttamente sul global.asa e farlo fare magari tramite una pagina asp contenente dei form che al submit vada a scrivere i dati inseriti dall'utente, nel global.asa.
    ma credo che non si possa proprio fare sul global.asa, forse un procedimento simile era possibile farlo su un file config.asp (se i dati da configurare fossero stati inseriti in questo file invece che sul global.asa).
    mi dai conferma di questo? spero di essere stato un po' più chiaro questa volta.

  6. #6
    puoi fare in modo che il global.asa legga un file .txt! l'utente modifica il .txt (o un .ini, come piu' ti aggrada), senza toccare il global.asa.

    that easy!

  7. #7
    grazie del suggerimento optime, potrebbe essere un'ottima idea.
    quindi posso attribuire il valore a delle variabili application recuperandoli da un file .txt direttamente dal global.asa.
    ma dal global.asa il file .txt lo leggo nel classico modo o potrebbe aver bisogno di altri accorgimenti?

  8. #8
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    scusa se insisto
    il global.asa è a tutti gli effetti l'equivalente del file .ini di una applicazione VB.

    quello che devi fare te è una procedura di setup che riceve dei parametri da un form, all'atto della installaqzione, e con quei parametri crea il global asa che poi l'utente usa.

    escluderei il file .txt che crea problemi di sicurezza (può essere letto via http a meno di settaggi particolari della cartella)
    Tutti vogliono parlare, nessuno sa ascoltare.

  9. #9
    gioba, invece del .txt basta usare un file.asp... il contenuto sara' quello di un classico file .ini - io personalmente preferisco che l'installatore tocchi il file dei parametri, piuttosto che un pezzo di programma

  10. #10
    Utente di HTML.it L'avatar di Gioba66
    Registrato dal
    Jun 2002
    Messaggi
    2,189
    ok con te
    Tutti vogliono parlare, nessuno sa ascoltare.

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.