Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307

    Connessioni ad Access col global.asa ed upload di file/immagini

    Buonasera a tutti,
    per il mio sito Web sto utilizzando un db Access e vorrei settare la connessione (e la chiusura della stessa) nel global.asa, invece di usare la 'classica' sequenza:

    <%
    Dim objConn
    Set objConn =Server.CreateObject("ADODB.Connection")
    objConn.ConnectionString = "stringa_di_connessione
    objConn.Open

    Dim objRS, strSQL
    Set objRS = Server.CreateObject("ADODB.Recordset")
    strSQL = "INSERT INTO Prova(Prova) VALUES ('Ciro')"
    objRS.Open strSQL, objConn

    'effettua la pulizia degli oggetti ADO
    objRS.close
    Set objRS = Nothing

    objConn.Close
    Set objConn = Nothing
    %>

    Se provo, però, a mettere la creazione della connessione in Application_OnStart e la chiusura della stessa in Application_OnEnd, il database Access mi rimane 'appeso', ovvero 'aperto in sola lettura'. Il che è incompatibile con le varie INSERT che vorrei fare (a proposito, perchè una SELECT mi funziona e la INSERT di cui sopra no?).
    Infine: come uploadare sul proprio sito Web immagini e file in genere? Un esempio concreto, please, non il solito link alla 'classe miracolosa'...
    Kisses,

    Nat

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    La chiusura della connessione va in tutte le pagine non nel global.asa
    La INSERT si fa così:
    codice:
    strSQL = "INSERT INTO Prova (Prova) VALUES ('Ciro')" 
    objConn.Execute(strSQL)
    Roby

  3. #3
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    non capisco... intendi dire: aprire la connessione in Application_OnStart, e chiuderla in tutte le pagine? E poi quando si riapre?
    Per la soluzione con objConn.Execute: la conoscevo anch'io, ma è sempre andata benissimo anche la objRS.Open strSQL, objConn.
    Il problema è che stavolta non funziona, continua a darmi "Per l'operazione è necessaria una query aggiornabile."....
    Ho provato a dare tutte le autorizzazioni possibili ed immaginabili, sulla cartella e da IIS: niente....
    Ed ho anche un altro problema, avendo provato ad utilizzare SQL Server 2000. Perchè cavolo l'utente 'sa' o simile 'non è associato ad una connessione trusted'?!?! Io ho ottenuto la stringa di connessione da Visual Basic, ed in VB la connessione funziona....

    objConn.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=DATABASE;Data Source=NOME_SQLSERVER"

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Devi indicare una password per sa, altrimenti non entra (questo è il significato del messaggio)

    La connessione deve essere chiusa in ogni pagina altrimenti resta appesa, quindi d eve essere aperta anche in ogni pagina dove necessario
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5
    Potresti fare un foglio di script da allegare ad ogni pagina in cui inserisci due sub, che ne so, ApriConnessione() e ChiudiConnessione() in maniera da poi semplicemente richiamare queste quando devi aprire e chiudere una connessione senza stare sempre a scrivere il codice nelle varie pagine.

    Naturalmente nel foglio di script objCnn deve essere pubblico, in maniera da poter essere richiamato per aprire i Recordset quando ti servono


  6. #6
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    mmmmm.... soluzione elegante, ma non molto più pratica di un buon "copia-e-incolla" (magari mettendo in Session la stringa di connessione). Il problema "vero" non è questo.
    Il problema "vero" è evitare che venga aperta/chiusa una connessione ad ogni richiesta di pagina, e possibilmente evitare che venga aperta/chiusa ad ogni sessione.
    Kisses,

    Nat

  7. #7
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Se apri la connessione nel global.asa puoi passarla come application
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  8. #8
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    perfettamente d'accordo, ma poi come chiuderla?
    In ogni singola pagina? Access rimane "appeso", ovvero disponibile in sola lettura: già provato.
    In Session_OnEnd?
    In Application_OnEnd?
    Stessi problemi.... o sono io che sbaglio procedura?
    Kisses,

    Nat

  9. #9
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    La procedura migliore per me è aprire la connessione solo quando serve e chiuderla non appena non occorra più.

    Roby

  10. #10
    Originariamente scritto da Roby72
    La procedura migliore per me è aprire la connessione solo quando serve e chiuderla non appena non occorra più.
    quoto

    La connessione al DB usa molte risorse, la "regola" è quella di aprirla il più tardi possibile e chiuderla il prima possibile.


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.