USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Banco de Dados)

Título da Dica:  DAO , proibir acesso ao banco enquanto alguem salva nele
Postada em 10/10/2003 por ^HEAVY-METAL^            
'Bom, devido a muitos pedidos que recebi nos ultimos dias, estou
'colocando aqui como fazer para abrir o banco, para que apenas um
'usuário possa mexer no banco.

'Quando for preciso usar o banco de dados utilize esse método de
'abertura de banco

      On Error GoTo TrataErro 'Caso ocorra um erro ele irá para a rotina TrataErro
      Set banco = OpenDatabase(App.Path & "\db5.mdb") 'Abro o banco de dados
      Set tborc = banco.OpenRecordset("PedOrc", dbOpenTable, dbDenyWrite) 'Abro a tabela como dbDenyWrite - ou seja o banco de dados ficará disponível apenas para essa pessoa .


TrataErro: 'Caso de erro ( outra pessoa tenta abrir a base de dados virá para essa rotina )
  If MsgBox("Não é possível efetuar esta operação no momento. Aguardar?", vbYesNo + vbQuestion, "Orçamentos e Pedidos") = vbYes Then 'Faço um pergunta se deseja esperar a liberação da base de dados
    Resume 'Se quiser esperar, mando o Resume para que o programa continue da linha que deu o erro
  Else  'Senão
    Unload Me 'Fecho a tela
  End If
End Sub


'O que acontece com esse código é o seguinte. 2 usuários vão abrir a
'mesma tela, para gravar um código de cliente ( exemplo ). Pela lógica  
'você não pode ter o mesmo número de registro para 2 clientes distintos,
'correto? Intão, essa rotina faz com que por mais preciso que os 2
'apertem o botão de incluir ( exemplo do cliente ) nunca abrirá nas 2
'máquinas. Um deles terá a base aberta, o outro irá para a rotina de erro
'até que a liberação da base seja feita.

'Problemas: se você abrir a base e esquiecer de fechá-la, ninguem da sua
'rede conseguirar acessar a tabela enquanto a mesma estiver aberta
'nesse modo.

'Soluções: garantia de que quando você for incluir, alterar ou excluir um
'registro, saberá que o mesmo será feito sem nenhum problema.

'PS: abre o banco de dados desse jeito ( mostrado acima ) apenas para
'rotinas de inclusão, alteração e exclusão de registros. Para consulta
'troque o dbDenyWrite para dbReadOnly.

'Dica: trabalhe sempre com o banco de dados fechado, abrá-o apenas
'quando realmente for incluir, alterar ( ambos quando for gravar no
'banco ) e excluir do seu banco de dados que você não terá problemas.

Bom galera vou ficando por aqui e espero ajudar muitos usuários :o)

T+,

   Manuel
 


CyberWEB Network Ltda.    © Copyright 2000-2019   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página