Alemão   Chinês - Simplificado   Espanhol   Francês   Holandês   Inglês (E.U.A.)   Português - Ibérico  

Home




How to Split a Replicated Access 97 Database (Iberian Portuguese)

Como Separar uma Base de Dados Access 97 Replicada

Por Jeffrey Streutker, MCSE

Aqueles que não são programadores experimentados do Access não sabem muitas vezes que a replicação de alterações ao desenho dos objectos outros que não sejam tabelas de dados é sabido que causa problemas. Isto é desanimador pois à primeira vista parece que a replicação seria a melhor maneira de distribuir uma aplicação de Access completa, e, apesar de tudo, A Microsoft suporta isto.

O problema é que a replicação do Jet foi construida com base somente em tabelas de dados. Isto porque a replicação do Jet era principalmente para aplicações feitas em Visual Basic onde somente os dados estariam guardados no ficheiro *.mdb. Foi aí que foi mais testado. No que se refere ao Access 97, Sempre foi entendido que um bom programador já teria separado a sua base de dados antes de a converter numa réplica para que só as tabelas fossem replicadas. Para uma introdução ao conceito de separação de uma base de dados Access, lê Capítulo 15, Secção 3, do documento "Building Applications in Microsoft Access 97" que vem no CD do Access 97.

Sem a separação da base de dados antes da replicação, tu vais descobrir que as tuas réplicas vão "inchar" em tamanho. Isto porque cada uma das alterações que efectuas a um formulário ou módulo, por exemplo, é colocado numa tabela escondida, e então passa a ser informação que precisa de ser replicada. Imagina por um momento que efectuaste 30 tentativas para colocar um módulo a funcionar correctamente. Cada uma destas alterações (todas menos a última não são necessárias) são enviadas para todas as réplicas. Na prática, programadores que não efectuaram a separação antes da replicação, encontram um problema incómodo: depois de um tempo (talvez até uns meses) da replicação estar a funcionar correctamente, de repente um módulo vai deixar de funcionar, ou um formulário vai deixar de poder ser aberto.

Então como podes separar uma base de dados que já foi replicada? Aqui eu sugiro os seguintes passos para ajudar-te.

  1. Não utilizes o assistente de Separação de Bases de Dados. Isto porque ele separa a base de dados exactamente da maneira errada por isso as tuas tabelas de dados deixam de poder ser replicadas – ele move as tabelas para um ficheiro novo e mantém o resto dos objectos dentro da réplica. Em vez disso, o que nós precisamos de fazer é manter as tabelas de dados dentro da réplica, e mover todos os outros objectos para um nova base de dados que não esteja replicada. Dessa maneira o backend continua a poder ser replicado como parte da corrente conjunto de réplicas, e o frontend é a agora uma base de dados standalone, que pode ser copiada para todos os utilizadores da aplicação.
  2. Certifica-te que todas as tuas réplicas estão sincronizadas para que saibas que possuis os dados mais recentes, só para o caso de corromperes o Design Master.
  3. Cria um novo ficheiro de bases de dados, que vai ser o frontend. Seguindo o exemplo da Microsoft, podes adicionar "_fe" ao nome original da base de dados, mas realmente não interessa o que lhe chamas.
  4. Tendo este novo ficheiro aberto, importa todos os queries, formulários, relatórios, macros, e módulos do Design Master. Se tu tens um switchboard no local, que criaste como o Gestor de Switchboard, então também necessitas de importar a tabelas de items do Switchboard.
  5. Cria ligações às tabelas do Design Master.
  6. Se tu tens implementada segurança da base de dados, então perdeste todas as configurações de permissões em todos os objectos que tu importaste ou ligaste nos passos 4 e 5. Por isso, abre o Design Master e copia todas as configurações de permissões para o novo ficheiro (o frontend).
  7. Agora é necessário adicionar código ao frontend que refaz as ligações para a réplica local do utilizador. Vai encontrar ajuda de como efectuar isto na base de dados Developer Solutions, que vem como base de dados de exemplo com Access 97. Seleciona "Link tables at startup" da categoria "Use Multiple Databases".
  8. Distribui o teu frontend a todos os teus utilizadores. Lembra-te que este ficheiro nunca deve ser replicado. Tu simplesmente efectuas cópias para quem dele precisar. Avisa os teus utilizadores para começar a utilizar o frontend. Quando tu tiveres a certeza que eles estão a utilizar o frontend, tu podes então ir em frente e converter o Design Master para um backend (os dois passos seguintes) para que da próxima vez que sejam sincronizados, as suas réplicas vão também passar a ser backends.
  9. Abre o Design Master e apaga todos os objectos que importaste no passo 4.
  10. Compacta o Design Master duas vezes, e depois sincroniza-o com todas as outras réplicas.
Nota: Se queres seguir exactamente as convenções de nomes que a Microsoft utiliza no seu assistente de separação de bases de dados, então tu vais ter de mudar o nome da tua réplica backend adicionando "_be" ao nome do ficheiro. A maneira mais segura de o fazer é com o Gestor de Replicação com o comando Move Replica.

Jeffrey Streutker é um IT Manager da empresa HVAC (Heating, Ventilation, and Air Conditioning) Controls na área de Toronto. Ele é um técnico de electrónica que também estudou informática e matemática na Universidade de Waterloo, Canada, e tem periodicamente feito trabalho de programação desde 1985 em muitas linguagens de programação diferentes. O seu projecto actual é converter um grande sistema de base de dados Lotus Notes para Access 97, incluindo replicação, de maneira a suportar técnicos no terreno com uma base de dados de ordens de compra e inspecção de serviços disponíveis, e uma agenda de endereços centralizada com suporte para fax cliente/servidor.

Voltar para Recursos sobre Replicação