Jump to content
Fórum Script Brasil
  • 0

Derrubando MDB


Staticb

Question

Primeira mente.

Boa noite

E muita Satisfação de estar fazendo parte de um dos foruns mais comentados.

Obrigado.

Então vamos la.

Galera eu tenho um banco de dados só a cada 4 dia eu atualizo o banco de dados e tal, e preciso que todos fechem o banco de dados. Só que sempre tem unzinho que fica on-line no banco de dados ainda.

E agora? Como que eu faço para tombar ele?

Teria como fazer ele logar no banco de dados e com esse logon que ele fez eu clicar em um botão e derrubar ele?

Ou algum comando de enviar mensagem para o micro que esta sendo utilizado o banco de dados?

Por favor preciso dessa informação.

Valeu galera tenha uma ótima noite.

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Fera encontrei este artigo no Ativo Access, veja se é isso?

Como forçar todos os usuários a saírem do MDB na rede

Autor: Paulo Bliknstein (http://www26.brinkster.com/accessjr/)

Publicado: 31/01/2004

Visitas: 6318

Às vezes é necessário forçar a saída de todos os usuários logados no mdb, especialmente quando o administrador precisa efetuar atualizações na versão do aplicativo, realizar uma operação de backup etc.

Um método simples para atingir esse objetivo é o seguinte:

1. Identifique um formulário que permaneça aberto o tempo todo (um menu principal, por exemplo). Se não houver, crie um formulário desse tipo mesmo que fique oculto e não sirva para outro propósito.

2. No evento No Cronômetro (OnTimer) desse formulário, escreva um código que verifique a existência de um determinado arquivo na rede local. Este arquivo pode chamar-se "kickout.txt" e não precisa ter nada dentro, pois a finalidade é saber se ele existe ou não. Eu uso uma linha de código como essa:

If Len(Dir("\TheServer\vol\access\kickout.txt")>0 Then DoCmd.Quit

3. Na propriedade Intervalo do cronômetro (TimerInterval) desse formulário, atribua um valor em milissegundos correspondente ao intervalo de tempo desejado para pesquisar a existência do arquivo kickout.txt. NOTA: A propriedade Intervalo do cronômetro aceita valores (Inteiro longo) entre 0 e 2.147.483.647.

4. Certifique-se de que a string (path do arquivo kickout.txt) é um caminho UNC que possa ser "enxergado" (lido) por todos os usuários. Ou seja, o caminho UNC faz com que não importe o mapeamento da letra do drive.

5. Então, quando você quiser que todos saiam do mdb ("kick out"), simplesmente crie o arquivo "kickout.txt" no diretório da rede referenciado no código. No intervalo de tempo definido no passo 3, o evento No cronômetro (OnTimer) irá disparar e todos os usuários logados terão o Access encerrado.

Observações

a) O código do passo 2 é simples para efeito de ilustração. Portanto, seria melhor criar um formulário de aviso, informando ao usuário (com letras grandes, em vermelho, com Beeps etc) que o aplicativo será fechado em 30 segundos (defina um novo TimerInterval para esse formulário de aviso), permitindo ao usuário concluir algo que esteja fazendo.

B) Certamente este método pode ser burlado por usuários mais espertos, bastando fechar o formulário de aviso ou o formulário principal. Porém, geralmente, eles entendem a necessidade de sair do aplicativo quando visualizam as letras vermelhas...

c) Utilize a mesma técnica com arquivos message.txt para enviar mensagens personalizadas para todos os usuários. Exemplo: novas versões, novos menus etc.

Outra maneira usando Access 2000

Uma das novidades do Jet 4.0, usado pelo Access 2000, é a propriedade "passive connection control", que permite colocar o banco de dados em um estado no qual novos usuários não possam logar-se, mantendo apenas os usuários logados no momento. Se alguém tentar abrir o arquivo, receberá mensagens de erro, como se o banco de dados já estivesse sendo executado em modo exclusivo. Uma vez que você tenha definido esta propriedade, use o formulário de exemplo para ajudá-lo a enviar um aviso qualquer pela rede para os usuários ainda conectados ao mdb, pedindo que saiam do sistema.

Para utilizar este importante recurso, rode o seguinte código:

Dim cn As New ADODB.Connection

Set cn = CurrentProject.Connection ‘Altere para abrir outro mdb.

cn.Properties("Jet OLEDB:Connection Control") = 1

Para voltar ao estado anterior, altere o valor da propriedade para 2:

cn.Properties("Jet OLEDB:Connection Control") = 2

Nota: Você precisa ter a permissão "Abrir Exclusivo" (Open Exclusive) sobre o banco de dados, para que possa modificar a propriedade Connection Control.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...