Replicador
Temos um cliente que tera uma filial em outra cidade, e decidimos utilizar um replicador para manter os dados entre as duas empresas (Matriz - Filial). Alguem teria alguma dica de qual replicador utilizar, quais as suas vantagens e suas desvantagens.
Steve_narancic
Curtidas 0
Respostas
Hllsilveira
02/10/2006
Meu amigo você pode utilizar o ibreplicator, eu ja usei, funciona direitinho e é para firebird.
GOSTEI 0
Steve_narancic
02/10/2006
Beleza, baixei o IBreplicador do site [url]http://www.ibphoenix.com/[/url], instalei e configurei conforme um artigo do site [url]www.firebase.com.br[/url] funcionou legal, só que fiquei com uma dúvida:
Se eu tiver uma tabela PAISES por exemplo e incluir um registro no banco de ORIGEM e de DESTINO, como se comportará o Replicador com as chaves primarias.
Ex.:
ORIGEM.GDB
1 - BRASIL
2 - BOLIVIA
3 - CUBA - [INCLUIDO]
DESTINO.GDB
1 - BRASIL
2 - BOLIVIA
3 - USA - [INCLUIDO]
O que acontecera com o 3 registro já que no destino já existe um registro com a chave primaria 3, vai gerar automaticamente um 4 registro, ou ira fazer um update?
Se eu tiver uma tabela PAISES por exemplo e incluir um registro no banco de ORIGEM e de DESTINO, como se comportará o Replicador com as chaves primarias.
Ex.:
ORIGEM.GDB
1 - BRASIL
2 - BOLIVIA
3 - CUBA - [INCLUIDO]
DESTINO.GDB
1 - BRASIL
2 - BOLIVIA
3 - USA - [INCLUIDO]
O que acontecera com o 3 registro já que no destino já existe um registro com a chave primaria 3, vai gerar automaticamente um 4 registro, ou ira fazer um update?
GOSTEI 0
Fsflorencio
02/10/2006
Neste caso deverá ocorrer erro de Chave primária mesmo.
A replicação deve ser praticada pelo usuário levando em conta estes casos, preparando o database e o sistema para que isto não ocorra. Isto pode ser resolvido pelomenos de três formas:
1º: Liberar o acesso para inserção para apenas 1 dos bancos de dados.
2º Estabelecer faixas de código. Ex: Banco 1 = 1.000.000 até 1.999.999, Banco 2 = 2.000.000 a 2.999.999, etc.
3º Criar uma Chave primária em cada tabela composta de um identificador da base de dados, fazendo com que não haja erro de Primary Key.
Não sei se no IBReplicator é assim, mas existe a possibilidade de existir replicadores que transformem inserts em Updates caso já exista algum registro com a mesma chave primária. Há um tempo atrás desenvolví um replicador para FireBird que fazia isto, mas na última versão tirei esta funcionalidade. Se quiser dar uma olhada, mande um e-mail para flavio@exata.net ou fsflorencio@hotmail.com.
t+
A replicação deve ser praticada pelo usuário levando em conta estes casos, preparando o database e o sistema para que isto não ocorra. Isto pode ser resolvido pelomenos de três formas:
1º: Liberar o acesso para inserção para apenas 1 dos bancos de dados.
2º Estabelecer faixas de código. Ex: Banco 1 = 1.000.000 até 1.999.999, Banco 2 = 2.000.000 a 2.999.999, etc.
3º Criar uma Chave primária em cada tabela composta de um identificador da base de dados, fazendo com que não haja erro de Primary Key.
Não sei se no IBReplicator é assim, mas existe a possibilidade de existir replicadores que transformem inserts em Updates caso já exista algum registro com a mesma chave primária. Há um tempo atrás desenvolví um replicador para FireBird que fazia isto, mas na última versão tirei esta funcionalidade. Se quiser dar uma olhada, mande um e-mail para flavio@exata.net ou fsflorencio@hotmail.com.
t+
GOSTEI 0
Steve_narancic
02/10/2006
Não sei se no IBReplicator é assim, mas existe a possibilidade de existir replicadores que transformem inserts em Updates caso já exista algum registro com a mesma chave primária.
Estive estudando o IBReplicator, até tem um artigo na edição 67 da clubedelphi sobre o mesmo, e constatei que este recurso existe no IBReplicator
GOSTEI 0