UPDATE OR INSERT INTO B01_FON (B01_BANCO, B01_NOME)
VALUES ('001', 'BRASIL S/A')
MATCHING (B01_BANCO);
Me Restava descobrir se essa sintaxe, ia funcionar executando dentro de delphi, e para mimha surpresa funcionou 100%, ou seja está ai uma maneira MUITO facil de se fazer sincronismo de dados no Firebird, pois executando esse Script o firebird checa pelo campo chave que está em MATCHING (B01_BANCO) (caso tenha mais campos na chave primária, basta separar por virgula), se não existir essa chave ele executa o INSERT, e se existir ele executa o UPDATE comparando a diferença campo a campo, que não pertença a chave primaria.Abs
Ae Isaque!
ResponderExcluirMuito boa dica, eu não conhecia o comando.
Muito útil!
Abraços, lampada =)
Bom dia Isaque,
ResponderExcluirCreio que existe restrição de versão do Firebird. Ex: versão 2.1 e 2.5 funcionam, versões anteriores não.
Isaque, boa tarde! eu uso este comando para sincronizar tabelas iguais em dois bancos de dados diferentes usando o IbExpert. Eu exporto a consulta da tabela do banco1 e rodo o script no banco2 inserindo ou atualizado os dados, mas gostaria de saber como implementar isto no delphi. Tem como me dá uma dica.? valeu. cldeus@hotmail.com
ResponderExcluirCleylerson, você terá que 1o fazer um select na tabela do DB origem, montando desse select um loop, dentro desse loop a cada registro navegado, você deve montar um UPDATE OR INSERT INTO TABLE do DB destino.
ExcluirOlá Cleylerson.
ResponderExcluirEstou com a mesma dúvida que você. Conseguiu fazer no delphi? tem como me ajudar? abraço, valtencir.
MUITO BOA A DICA. RESOLVEU ALGUNS PROBLEMAS QUE TINHA PARA ATUALIZAR TABELAS
ResponderExcluir