JoaoVM Posted February 27, 2014 at 03:26 PM Report #546913 Posted February 27, 2014 at 03:26 PM Boas malta, gostava de saber como posso atualizar uma tabela numa base de dados a partir de dados disponíveis numa outra tabela de outra base de dados, imaginemos: Esta é uma tabela de funcionários onde o ref_id corresponde ao número do cartão e o num_colab ao número de colaborador. Existe uma base de dados com estes números de colaborador que serão sempre os mesmos e os respetivos cartões que podem sofrer alterações por exemplo se perder o cartão, se partir o cartão, etc. A minha dúvida é se a partir dessa tabela sempre atualizada posso atualizar a tabela da minha base de dados que atualmente precisa de ser atualizada manualmente através de um backoffice na aplicação. Alguma sugestão?
Rui Carlos Posted February 27, 2014 at 10:43 PM Report #547010 Posted February 27, 2014 at 10:43 PM Se a tua aplicação tem acesso às duas BDs, podes, por exemplo, disponibilizar no backoffice da tua aplicação um botão "sincronizar". Este botão chamaria uma função que obtinha o ref_id associado a um num_colab em cada tabela, e quando fossem diferentes, procedia aos updates necessários. Isto seria um mecanismo rudimentar, e não muito eficiente, que certamente conseguirás melhor para o teu caso em particular. Rui Carlos Gonçalves
JoaoVM Posted February 28, 2014 at 08:53 AM Author Report #547033 Posted February 28, 2014 at 08:53 AM Hum..é assim como não sei ainda como fazer todas as opiniões são bem vindas, mas dizes que é pouco eficiente, conheces outra forma mais eficiente?se calhar não deveria ser feito na aplicação mas diretamente por si nas bases de dados, um trigger por exemplo, que quando é atualizado dispara uma ação...mas claro, gostava de mais opiniões, vamos ver se alguém aparece aqui com a formula...
HappyHippyHippo Posted February 28, 2014 at 09:15 AM Report #547035 Posted February 28, 2014 at 09:15 AM as base de dados estão em servidores diferentes ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
JoaoVM Posted February 28, 2014 at 10:27 AM Author Report #547049 Posted February 28, 2014 at 10:27 AM Sim estão em servidores diferentes....
HappyHippyHippo Posted February 28, 2014 at 11:04 AM Report #547066 Posted February 28, 2014 at 11:04 AM então só estou a ver uma solução : - configurar a base de dados com os dados a serem acedidos como "replication master" - configurar a base de dados da tua aplicação como "replication slave" - configurar o processo de replicação da base de dados agora é aceder à base de dados local ao teu servidor, e isso será mais fácil ... 1 Report IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
JoaoVM Posted February 28, 2014 at 11:07 AM Author Report #547069 Posted February 28, 2014 at 11:07 AM Obrigado, ainda tenho que ver melhor como vou fazer porque não sou eu que faço a gestão da outra base de dados nem acesso a ela..mas sei que está sempre atualizada por uma aplicação da siemens chamada sipass que tenho que ir buscar os tais dados dos cartões, quando tiver novidades aviso. Já deu para ficar com uma ideia do que é necessário fazer...
Rui Carlos Posted February 28, 2014 at 11:39 AM Report #547081 Posted February 28, 2014 at 11:39 AM Mas as bases de dados são iguais? (Fiquei com a ideia que as tabelas em causa eram diferentes, e como tal as BDs seriam também diferentes.) Penso que a replicação se aplica aos casos em que temos BDs iguais. Hum..é assim como não sei ainda como fazer todas as opiniões são bem vindas, mas dizes que é pouco eficiente, conheces outra forma mais eficiente?se calhar não deveria ser feito na aplicação mas diretamente por si nas bases de dados, um trigger por exemplo, que quando é atualizado dispara uma ação...mas claro, gostava de mais opiniões, vamos ver se alguém aparece aqui com a formula... Relativamente à eficiência, podes ter um sistema na BD original para te guardar as alterações feitas desde a última sincronização, de modo a que depois também saibas exactamente o que é que tens que actualizar, em vez de verificares tudo. Mas para isto terias que mexer na BD de origem (ou pelo menos na aplicação que faz as alterações). Rui Carlos Gonçalves
JoaoVM Posted February 28, 2014 at 11:42 AM Author Report #547083 Posted February 28, 2014 at 11:42 AM Exatamente, as tabelas são diferentes em bases de dados diferente mas com 2 campos em comum nas tabelas de cada base de dados (num_colab e ref_id).
HappyHippyHippo Posted February 28, 2014 at 11:42 AM Report #547084 Posted February 28, 2014 at 11:42 AM (edited) @RuiCarlos : não necessariamente, se o problema é aceder a dados fora do servidor (independente da estrutura destes), a solução mais prática é replicar os dados localmente, isto porque é possível com grande facilidade aceder a dados de outra BD no mesmo servidor. Edited February 28, 2014 at 11:43 AM by HappyHippyHippo IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
Rui Carlos Posted February 28, 2014 at 11:51 AM Report #547088 Posted February 28, 2014 at 11:51 AM Ok. Assumi que aceder à BD remota não seria propriamente um problema. Mas efectivamente ter uma cópia local facilita as coisas. Rui Carlos Gonçalves
JoaoVM Posted February 28, 2014 at 12:01 PM Author Report #547098 Posted February 28, 2014 at 12:01 PM mas assim essa copia local teria que estar atualizada também, porque não fazer diretamente?isto sou eu a perguntar, nunca o fiz, posso estar a ser burro quanto a este assunto mas na sei mesmo do que se trata..nunca o fiz...
HappyHippyHippo Posted February 28, 2014 at 12:04 PM Report #547100 Posted February 28, 2014 at 12:04 PM não podes fazer isso directamente porque não existe nenhum processe na geração de processos/triggers para aceder a servidores remotos IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
JoaoVM Posted February 28, 2014 at 12:06 PM Author Report #547101 Posted February 28, 2014 at 12:06 PM pronto mas o que estou a pensar é o seguinte, tens 2 servidores, 1 base de dados em cada servidor, se crias uma copia local como manténs a cópia local atualizada também?
HappyHippyHippo Posted February 28, 2014 at 12:07 PM Report #547102 Posted February 28, 2014 at 12:07 PM isso é trabalho da replicação ... vai ler sobre o assunto que já saberás IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
JoaoVM Posted February 28, 2014 at 12:09 PM Author Report #547103 Posted February 28, 2014 at 12:09 PM ok ok, é sobre o que tinhas falado no inicio sobre o replication manter e o replication salve..já percebi como funciona e qual será o processo a efetuar, agora e saber como funciona a replicação e aplicar ao meu problema 😉 Obrigado por me esclarecerem.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now