Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
programadorvb6

Fecho de todas as BD Abertas.

Recommended Posts

programadorvb6

Se necessita usar quaisquer objetos de dados em seu código (DAO, RDO ou ADO), deve ter a certeza de que fecha explicitamente todos os conjuntos de registros abertos, na base de dados e espaços de trabalho antes de sair.

Embora os ponteiros para esses objetos são automaticamente destruídos ao sair do programa, se não conseguir fechar explicitamente todos os itens abertos, suas ligações á base de dados não podem ser libertadas imediatamente da memória utilizada por estes objetos; pode até nunca ser que haja reatribuição pelo sistema operacional.

Aqui está uma rotina curta, que poderá adicionar ao seu evento Form_Unload (ou algum outro módulo de código terminação) que irá fechar todos os espaços de trabalho DAO abertos, na base de dados e conjuntos de registros.

Este código irá funcionar caso tenha 1, 100 ou até mesmo nenhuma ligação aberta quando você tentar sair do formulário.

'---------------------------------------------------------------------------------------

No Formulário :

'---------------------------------------------------------------------------------------

Private Sub Form_Unload(Cancel As Integer)
FecharDados
End Sub

'---------------------------------------------------------------------------------------

No Módulo :

'---------------------------------------------------------------------------------------

'---------------------------------------------------------------------------------------
'
' Descrição : fecha todoas as bases de dados abertas
'---------------------------------------------------------------------------------------
Public Function FecharDados() As Integer
    On Error Resume Next
    
    Dim wsCurr As Workspace
    Dim dbCurr As Database
    Dim Rs As Recordset
    Dim Frm As Form
    
    For Each wsCurr In Workspaces
        For Each dbCurr In wsCurr.Databases
            For Each Rs In dbCurr.Recordsets
                Rs.Close
                Set Rs = Nothing
            Next
            
            dbCurr.Close
            Set dbCurr = Nothing
        Next
        
        wsCurr.Close
        Set wsCurr = Nothing
    Next
    
End Function


Até+

Programadorvb6

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.