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

    il recordset si chiude da solo?

    Set objconnPI = CreateObject("ADODB.Connection")
    Set objrsPI = CreateObject("ADODB.Recordset")

    strconnPI = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" & App.Path & "\UsaMeteonorm.mdb"

    objconnPI.open strconnPI
    objrsPI.open "select * from pianoinclinato where id = '" & cont & "'", objconnPI

    While Not objrsPI.EOF

    azimuth = objrsPI("azimuth")
    inclinazione = objrsPI("inclinazione")

    objrsPI.movenext
    Wend

    objconnPI.Close
    **************objrsPI.Close*********************

    objrsPI = Nothing
    objconnPI = Nothing


    in questo frammento interrogo semplicemente una tabella da un DB.
    quando chiudo il recordset (objrsPI) il messaggio di errore e' "operation not allowed when the object is closed".

    I recordset si chiudono da soli? :master:

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Cambia la sequenza in questo modo

    codice:
    objrsPI.Close
    Set objrsPI = Nothing
    
    objconnPI.Close
    Set objconnPI = Nothing

  3. #3
    Set objrsPI = Nothing
    Set objconnPI = Nothing

    Ciauz

    Chico

  4. #4

    Re: il recordset si chiude da solo?

    Originariamente inviato da cxrnvs


    I recordset si chiudono da soli? :master:
    se chiudi prima la connessione si
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  5. #5
    Credo che in ogni caso sia comunque buona norma rilasciare l'oggetto settandolo a Nothing, anche se chiuso dalla chiusura della connessione.

    Ciauz

    Chico

  6. #6

    Re: Re: il recordset si chiude da solo?

    Originariamente inviato da xegallo
    se chiudi prima la connessione si


    e' vero.
    non me ne ero accorto!

  7. #7
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Oltre a quello che ti hanno detto Oregon e chico62, se vuoi verificare prima di chiudere puoi usare il seguente codice:
    codice:
    'Chiude e cancella il recordSet:
            If GetState(objrsPI.State) = "adStateOpen" Then
                objrsPI.Close
                Set objrsPI = Nothing
            End If
            'Verifica e Chiude la connessione:
            If GetState(objconnPI.State) = "adStateOpen" Then
                objconnPI.Close
                Set objconnPI = Nothing
            End If
    LM

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    @LMondi
    Se proponi un codice devi anche proporre quello delle funzioni usate.
    La GetState non e' di VB e non la mostri ... In realta' e' piu' semplice scrivere

    codice:
    If objrsPI.State = adStateOpen Then
      objrsPI.Close
      Set objrsPI = Nothing
    End If
    
    If objconnPI.State = adStateOpen Then
      objconnPI.Close
      Set objconnPI = Nothing
    End If

  9. #9
    grazie a tutti!




  10. #10
    ...a quanto già detto mi permetto di aggiungere che,
    volendo contemplare anche il caso di operazioni asincrone,
    il codice più generale per verificare se un recordset (o connessione) è aperto
    mi sembra essere :
    codice:
    'State è una maschera di bit
    if (oRs.State And adStateOPen) = adStateOpen then etc...
    Ciao sspintux

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.