Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

programadorvb6

Fecho de todas as BD Abertas.

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.