Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

BMXer

Como manter coerente dados em diferentes BD?

Recommended Posts

Olá Pessoal !Tenho a seguinte situação:Um sistema em asp com um BD Access que roda numa intranet. Algumas tabelas deste banco deverão estar constantemente (atualização diária) atualizadas com um BD on-line num site da internet. Já aviso que não é possível centralizar o banco na internet.De que forma faria para verificar quais dados foram inclusos/alterados/exclusos e fazer um upload de atualização?Grato,BMXer

Compartilhar este post


Link para o post
Compartilhar em outros sites

uma das alternativas seria coloca a data de qdo foram inclusas e a hora tmb, e você poderia fazer alguma coisa q pegasse a ultima data de atualização e mandasse atualizar a sua base de dados de acordo com a ultima atualização......até mais

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok...acho que a data é uma ótima opção.Agora, como faria a atualização dos bancos? Descobri quais dados foram atualizados e como atualizar esses dados com o banco on-line?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive uma idéia e gostaria de compartilhar.1 - Faria uma seleção dos registros atualizados e em seguida gerar um arquivo .csv separado por vírgulas. 2 - Upload do .csv para internet3 - Atualizar banco abrindo .csv e consultando cada registro no BD on-line, se o mesmo existir, prosseguir com atualização, caso contrário inserir o registro.Gostaria de saber se alguém tem um outro método?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pode ser meio louco, mas vamos lá. você cria tres arquivos TXT, um de inserção, outro de exclusão e outro de alteração. Todas as vezes que for realizado uma inclusão você grava também no arquivo de txt de inserção as novas informações, o mesmo ocorre para as tarefas de exclusão e alteração. Depois você faz uma rotina onde, ao clicar num local qualquer você pegaria o arquivo TXT de exclusão e compararia com o banco excluindo os campos que tiverem sido excluídos pelo usuário, depois você pegaria o arquivo TXT de inserção e cadsastraria no banco as novas ocorrências e por último você pegaria o arquivo de alteração e faria as alterações.Acho que assim pode servir não, fica bem rápido, por se tratar de arquivo TXT, tornando assim ainda mais rápida as tarefas de cadastro, alteração e exclusão.Att.Guilherme de Carvalho Carneiro. :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

asp.netgostei da sua idéia, acho que realmente será a mais adequada até o momento. Agora nesse txt, como eu iriar separa os campos, com ponto e vírgula ";" o problema é que tenho campos q podem conter esse caractere, o que devo fazer?Grato,BMXer

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!A solução do asp.net é a mais interessante porém acho que podíamos melhorá-la um pouco mais. você podia criar apenas um arquivo txt, que serviria como arquivo de log de todas as operações realizadas no banco de dados. Sempre que uma operação for realizada, seja de inserção, remoção ou atualização, você grava ela no txt já na linguagem SQL. Depois você pode executar a atualização do outro banco apenas lendo e executando os dados do arquivo no horário que achar melhor.Até

Compartilhar este post


Link para o post
Compartilhar em outros sites

jsp_devachei muito interessante sua proposta, você tem algum link de onde posso encontrar maiores informações a respeito???Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

BMXer,Voce mesmo adotando uma das duas soluções, vai ter que tomar cuidado com a seguinte situação. 1 - Um usuário exclui um registro2 - Outro usuário logo em seguida (antes de você efetuar o sincronismo nos bancos) faz uma alteração neste mesmo registro.3 - Ai quando você for fazer o sincronismo, vai dar um problema pois você irá atualizar um registro que não existe.Para isto você pode fazer duas coisas, a primeira seria toda a vez que o usuário fizer alguma tarefa (insert, delete, Update) você faria o sincronismo, e a segunda ordernar a interpretação dos comandos, primeiro as alterações, depois as exclusões e por último a inserção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.