Array
(
)

Manter duas bases sincronizadas

Gandalf.nho
   - 22 mar 2006

Tenho uma pequena aplicação que usa base de dados Paradox. Atualmente roda em apenas uma máquina, mas o usuário está pensando em colocar uma cópia do sistema num notebook. Como as duas versões serão alimentadas, como eu poderia fazer para conseguir sincronizar as bases? Como o sistema é pequeno não compensa arcar com nenhuma solução de replicação paga.


Edilcimar
   - 22 mar 2006

Se o notebook não estiver ´em rede´ com o computador, basta zipar as tabelas e fazer a importação no notebook, eu uso este sistema entre lojas, onde as tabelas são zipadas pelo programa, enviadas pelo correio e restauradas pelo programa na matriz


Aroldo Zanela
   - 22 mar 2006

Colega,

Se eu entendi, o cara pode digitar em ambos e depois quer também que as informações digitada em cada um esteja nos dois.
Pensei em criar uma coluna para identificar a origem (filtro) e outra para identificar o registro.

Algo assim:

#Código


+----Filtro
|
Tabela A ------------------------------V----------
001213123131545465464654546465465465454A0000000001
646487979646463131315646131316461313212A0000000002

+----Filtro
|
Tabela B ------------------------------V----------
649794646464564979846464987946464646487B0000000001
649794646464564979835464975138564646487B0000000002
649797979879654654646464987946464646487B0000000003
649794646464565464646498876413134646487B0000000004
631354646465464979846464987946464646487B0000000004
149794646464564979846464645646464646487B0000000005
649794645146646464656464987946464646487B0000000006
131313156464564979846464987946464646487B0000000007
^ ^
| |
+--------+--- Chave no arquivo

+---------+--- Chave de sincronização
Sincronizando A c/ B | |
V V
001213123131545465464654546465465465454A0000000001
646487979646463131315646131316461313212A0000000002
649794646464564979846464987946464646487B0000000001
649794646464564979835464975138564646487B0000000002
649797979879654654646464987946464646487B0000000003
649794646464565464646498876413134646487B0000000004
631354646465464979846464987946464646487B0000000004
149794646464564979846464645646464646487B0000000005
649794645146646464656464987946464646487B0000000006
131313156464564979846464987946464646487B0000000007

Sincronizando b c/ a

649794646464564979846464987946464646487B0000000001
649794646464564979835464975138564646487B0000000002
649797979879654654646464987946464646487B0000000003
649794646464565464646498876413134646487B0000000004
631354646465464979846464987946464646487B0000000004
149794646464564979846464645646464646487B0000000005
649794645146646464656464987946464646487B0000000006
131313156464564979846464987946464646487B0000000007
001213123131545465464654546465465465454A0000000001
646487979646463131315646131316461313212A0000000002



Gandalf.nho
   - 22 mar 2006

E no caso de alteração de um registro? Como identificar isso?


Marcio.theis
   - 22 mar 2006

O que eu fiz uma vez para um sistema foi criar em cada tabela um campo chamado DTULTMODIFICACAO, sempre que inseria um registro ou alterava eu setava com a data e hora corrente, e depois no final do dia rodava um programa que pegava todas as alterações e gerava em uma arquivo texto, zipava e enviava por e-mail, ao chegar na matriz o programa descompacta e importava todas as alterações e inserções novas, deu um pouco de trabalho mas valeu a pena... E outra coisa que surgiu como problema, foi ao excluir um registro, pois não podoa remover o mesmo da base de dados, então tive de criar um campo com o nome de TPEXCLUIDO, caso estivesse, não aparecia nas telas... Se for para um sistema pegueno, vale a pena, mas se for muito grande... acho que deveria de ver uma outra solução... pois o que mais encomoda neste caso é os registros excluídos.