Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Avere la certezza che le connessioni siano chiuse

    ragazzi su un sito fatto da altra gente mi si sono verificati degli errori che a detta del provider sono dovuti a probabili connessioni non chiuse o ad altri errori di script

    vorrei sapere come posso scrivere una riga di codice che mi chiuda la connessione in maniera definitiva !
    speravo di poter creare una SUB in grado di chiudermi la connessione da attivare ogni volta che si chiude la pagina (AD ESEMPIO)
    il punto è che il codice è mal scritto e non mi sento di mettere mano a qualche cosa che anche se mal scritto per il momento funziona !!!

  2. #2
    uno dei modi e' quello di utilizzare il blocco finally es.
    codice:
    dim m_conn as sqlconnection
    try
    m_conn = new sqlconnection("connectionstring")
    ' qui metti il codice che apre e usa la connessione
    finally
    m_conn.close
    end try
    Saluti a tutti
    Riccardo

  3. #3
    eh magari fosse cosi semplice solitamente anch'io utilizzo un codice simile...
    il punto è che il programmatore che mi ha preceduto non la pensa come noi e apriva connessioni in ogni sub presente nella pagina quindi io mi trovo ad avere in una sub 3 righe di codice come la seguente
    dim strconn as String = "stringa di connessione al db"
    dim objConn as ODBCConnection = new ODBCConnection(strconn)
    objConn.Open()

    e nella stessa sub non c'è nessun riferimento alla chiusura della connessione !!!
    questo può ripetersi anche 3 o 4 volte in una pagina !!!
    come posso fare non ditemi che dovrò aprire tutte le pagine e inserire un objConn.Close() tutte le volte che trovo una connessione al db !!!!!

  4. #4
    Originariamente inviato da brutusin
    ...aprire tutte le pagine e inserire un objConn.Close() tutte le volte che trovo una connessione al db !!!!!
    Non solo ma dovresti mettere il close all'interno di un blocco try cosi come nel mio post precedente e cioe' nel finally.
    Saluti a tutti
    Riccardo

  5. #5
    il problema è che non c'è traccia di un solo blocco try all'interno di tutte le pagine dell'applicazione !

    ma già mettendo il .Close() non ottengo un risultato più che sufficiente ?!?!?!?!?!?

    vi prego ragazzi vorrebbe dire rifarmi su per giù tutte le pagine

  6. #6
    Originariamente inviato da brutusin
    il problema è che non c'è traccia di un solo blocco try all'interno di tutte le pagine dell'applicazione ! ma già mettendo il .Close() non ottengo un risultato più che sufficiente ?!?!?!?!?!?
    Il blocco try cosi come te l'ho indicato io non e' utilizzato per gestire eccezioni ma per essere sicuri di chiudere sempre la connection anche in presenza di errori nella procedura. Se non non metti nel finally la chiusura della connection e nel codice viene sollevata una eccezione di qualsiasi tipo prima della chiamata alla funzione close la connessione rimarra' aperta.
    In generale, quello che metti nel finally anche in presenza di eccezioni viene sempre e comunque eseguito.
    Saluti a tutti
    Riccardo

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2001
    Messaggi
    1,482
    Gli oggetti di tipo DataConnection hanno la proprietà State.

    Per vedere se una connessione è aperta basta fare:

    codice:
    If ConnObj.State=ConnectionState.Open Then
       ConnObj.Close
    End If
    Penso sia più performante di un blocco try.

    Ciao ciao.

    Hey hey, my my Rock and roll can never die!

  8. #8
    Originariamente inviato da zampa28
    Per vedere se una connessione è aperta basta fare:
    ...
    Penso sia più performante di un blocco try.
    Il problema non ' vedere se una connessione e' aperta. Anzi questo non e' quasi mai un problema visto che chiamando close su una connessione chiusa non succede niente di grave.
    La domanda e': come faccio ad essere certo che in ogni caso (anche in presenza di errori) la connessione che ho aperto venga chiusa? Con il tuo suggerimento non risolvi questa richiesta. Se metti nel blocco finally la chiamata alla funzione Close della connection la risolvi.
    Poi se vuoi puoi anche mettere (o non mettere) un controllo ulteriore if tuaconn.state = .... then
    Saluti a tutti
    Riccardo

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.