Uma funcionalidade muito interessante da replicação do Jet 4.0... é a possibilidade da criação de réplicas (até mesmo réplicas parciais) onde os dados podem ser adicionados ou alterados, mas não podem ser apagados. Infelizmente, não foi adicionado ao JRO (Jet e replication objects), não está disponível através do gestor de replicação (Replication Manager), e não foram efectuadas alterações no DAO para replicação nesta versão.
Então a única maneira que existe de criar estas pequenas preciosidades, são as seguintes:
1) Utilizar os ecrãs do Access (que não expõem um interface para a programação)
2) Usar o último TSI Synchronizer
3) Usar uma pequena e escondida via, através do metódo MakeReplica do DAO!
Então e qual é esta via escondida? Bem, o terceiro (opcional) parâmetro "Options" tem duas possibilidades documentadas:
Const dbRepMakePartial = 1
Const dbRepMakeReadOnly = 2
mas através tentativas e erros, determinamos que também podes utilizar em conjunto ou em substituição do acima indicado (simplesmente define-o algures):
Const dbRepMakePreventDeletes = 4
E chama:
db.MakeReplica "c:\foo.mdb", "", _ dbRepMakePreventDeletes Or dbRepMakePartial
e acabaste de criar uma réplica parcial onde não podem ser apagados dados!
Só para terminar com as constantes que podem ser úteis, podes escolher *qualquer uma* das seguintes (não podem ser combinadas) para tratar a visibilidade da réplica. De notar que o JRO também possui uma maneira de efectuar isto, mas eu prefiro à vez, colocar todos os meus ovos na mesma cesta:
Const dbRepGlobalReplica = &H1000
Const dbRepLocalReplica = &H2000
Const dbRepAnonymousReplica = &H4000
(réplicas globais são criadas por defeito se não for indicado nenhum parâmetro, estão visiveis para todas as outras réplicas do conjunto. Réplicas locais só são visiveis para a réplica que as criou. Réplicas anónimas (Anonymous replicas) não são visiveis por ninguém, e só podem ser sincronizadas com o seu pai (parent) -- útil para sites da Internet que não desejam manter registo de cada uma das réplicas simples que são distribuídas por cliente, por exemplo).
O último TSI Synchronizer expõe todas estas novas funcionalidades do Jet 4.0 na synch40.dll, também. Mas se não estás ainda a utilizar o TSI Synchronizer, a solução do DAO é uma solução fácil e rápida de expandir o processo de criação de réplicas.