Banco de dados - Copiar registro de uma banco para outro?
Bom já postei este essa pergunta e ninguém respondeu, mas lá vai de novo.
Tenho que transferir registro de uma banco de dados para outro, obs: as conecções são diferentes(BDE e ADO).
Estou copiando registro por registro em um loop, mas demora muito pois tenho tabelas com 200 mil registros
Gostaria de saber se tem uma forma de fazer isso utilizando SQL? Lembrando que são conecções diferentes.
E me sugeriram que eu criasse uma arquivo texto com os registros e depois importa-lo para o outro banco. Gostaria de saber se isso seria mais rápido, e mais eficiente?
E tbém como fazer para uma consulta SQL gerar um arquivo TXT?Se tem como(pois fiquei sabendo que dá)?
Márcio Rodrigues Adão
TTI Brasil
Tecnologia
Tenho que transferir registro de uma banco de dados para outro, obs: as conecções são diferentes(BDE e ADO).
Estou copiando registro por registro em um loop, mas demora muito pois tenho tabelas com 200 mil registros
Gostaria de saber se tem uma forma de fazer isso utilizando SQL? Lembrando que são conecções diferentes.
E me sugeriram que eu criasse uma arquivo texto com os registros e depois importa-lo para o outro banco. Gostaria de saber se isso seria mais rápido, e mais eficiente?
E tbém como fazer para uma consulta SQL gerar um arquivo TXT?Se tem como(pois fiquei sabendo que dá)?
Márcio Rodrigues Adão
TTI Brasil
Tecnologia
Marc_adans
Curtidas 1
Respostas
Sousa_thiago
07/05/2003
Quais são os 2 SGBD´s que vc está utilizando ?
GOSTEI 0
Marc_adans
07/05/2003
Oracle Utilizando o BDE
Access Utilizando o ADO(Futuramente vou mudar para Firebird)
Tenho que passar os dados do oracle para o Access
Access Utilizando o ADO(Futuramente vou mudar para Firebird)
Tenho que passar os dados do oracle para o Access
GOSTEI 0
Okama
07/05/2003
A princípio fazer um loop e copiar um a um seria mais rápido e você poderia colocar um ProgressBar para indicar o progresso da cópia.
Se for exportar para txt, você terá dois processos à realizar e terá de formatar o txt, dando mais trabalho.
Considerando que você está usando BDE e ADO seria difícil usar SQL para replicar a base, a menos que você tenha as duas bases em DBE ou ADO.
Quais são as bases que você utiliza e qual o tempo médio da importação?
Se for exportar para txt, você terá dois processos à realizar e terá de formatar o txt, dando mais trabalho.
Considerando que você está usando BDE e ADO seria difícil usar SQL para replicar a base, a menos que você tenha as duas bases em DBE ou ADO.
Quais são as bases que você utiliza e qual o tempo médio da importação?
Bom já postei este essa pergunta e ninguém respondeu, mas lá vai de novo.
Tenho que transferir registro de uma banco de dados para outro, obs: as [u:713a9615d3]conecções[/u:713a9615d3] (conexões) são diferentes(BDE e ADO).
Estou copiando registro por registro em um loop, mas demora muito pois tenho tabelas com 200 mil registros
Gostaria de saber se tem uma forma de fazer isso utilizando SQL? Lembrando que são [u:713a9615d3]conecções [/u:713a9615d3](conexões) diferentes.
E me sugeriram que eu criasse uma arquivo texto com os registros e depois importa-lo para o outro banco. Gostaria de saber se isso seria mais rápido, e mais eficiente?
E tbém como fazer para uma consulta SQL gerar um arquivo TXT?Se tem como(pois fiquei sabendo que dá)?
Márcio Rodrigues Adão
TTI Brasil
Tecnologia
GOSTEI 0
Sousa_thiago
07/05/2003
A forma mais rapida de se fazer esse exportação seria se seus 2 bancos de dados fosse SGBD´s Relacional SQL padronisado ANSI ai sim vc conceguiria fazer o q vc falou.
Exportar sua base para uma arquivo ASCII (TXT), nesse arquivo vc teria nada mais que commandos SQL alguma coisa do tipo ´inserte into tabela() values´ e com certeza isso seria mais radido.
Mas isso é uma coisa bem dificil de se conceguir fazer pelo fato de que mesmo usando SQL cada SGBD tem alguma particularidade na forma como o SQL é escrito.
Então pelo menos até onde eu sei a forma mais rapida de vc fazer isso é como vc já vem fazendo usando um loop e uma barra de progresso. Se estiver acontecendo de a sua aplicação ficar travada nesse periodo vc pode colocar essas rotinas para rodar em uma outra Thread(Isso não vai fazer ficar mais rapido a unica diferença é que vai te permitir rodar outros procedimentos como por exemplo um botão de para importação).
:)
Exportar sua base para uma arquivo ASCII (TXT), nesse arquivo vc teria nada mais que commandos SQL alguma coisa do tipo ´inserte into tabela() values´ e com certeza isso seria mais radido.
Mas isso é uma coisa bem dificil de se conceguir fazer pelo fato de que mesmo usando SQL cada SGBD tem alguma particularidade na forma como o SQL é escrito.
Então pelo menos até onde eu sei a forma mais rapida de vc fazer isso é como vc já vem fazendo usando um loop e uma barra de progresso. Se estiver acontecendo de a sua aplicação ficar travada nesse periodo vc pode colocar essas rotinas para rodar em uma outra Thread(Isso não vai fazer ficar mais rapido a unica diferença é que vai te permitir rodar outros procedimentos como por exemplo um botão de para importação).
:)
GOSTEI 0
Sousa_thiago
07/05/2003
Esqueci de falar isso ali encima.
Se você vai usar o Firebird por que vai passar isso pra access ??
Cara ... um banco de dados do tamanho desse q vc está falando vai ficar muito lento ....
Se você vai usar o Firebird por que vai passar isso pra access ??
Cara ... um banco de dados do tamanho desse q vc está falando vai ficar muito lento ....
GOSTEI 0
Marc_adans
07/05/2003
Bom estou nesta empresa apenas um mês e tenho que mudar todos os sistemas e relatorios que estão em Access(formularios e relatorios tudo em access), para delphi, mas não posso deixar nenhum processo parado, por isso tenho que mante-los funcionandos e ao mesmo momento ir criando novos em delphi, minha base Oracle fica em outro servidor dentro da GM e todo dado que é trafegado entre minha maquina e o servidor da GM(aonde se encontra o banco Oracle) tem que se criptografado por ordem da GM(uso o programa VPN para criptografar os dados), por este motivo a conecção fica mais lenta ainda, mas como os dados não são constantemente atualizados na GM posso pegar essas informações uma vez por semana, por isso quero criar um sistema que pega as tabelas do Oracle e importe para outro banco(no momento é access para mim deixar os outros sistemas funcionando, mas para mim usar firebird aqui tenho que convence-los a usar), hoje vou fazer um teste de horario e respondo para vcs, vou importar uma tabela e guardar o horario de inicio e termino ai vc me falam se está bom ou ruim, outra eu já faço por Thread por isso acho que ele não trava o micro.
GOSTEI 0
Daniel Nery
07/05/2003
Amigo vc solucionou esse problema como? Estou tendo que fazer a mesma coisa mas do oracle para firebird. existe algum modo de fazer que não seja num loop inserindo registro por registro???
GOSTEI 0
Ronaldo
07/05/2003
A princípio fazer um loop e copiar um a um seria mais rápido e você poderia colocar um ProgressBar para indicar o progresso da cópia.
Se for exportar para txt, você terá dois processos à realizar e terá de formatar o txt, dando mais trabalho.
Considerando que você está usando BDE e ADO seria difícil usar SQL para replicar a base, a menos que você tenha as duas bases em DBE ou ADO.
Quais são as bases que você utiliza e qual o tempo médio da importação?
https://DBE-consultar.com.br/
Se for exportar para txt, você terá dois processos à realizar e terá de formatar o txt, dando mais trabalho.
Considerando que você está usando BDE e ADO seria difícil usar SQL para replicar a base, a menos que você tenha as duas bases em DBE ou ADO.
Quais são as bases que você utiliza e qual o tempo médio da importação?
Bom já postei este essa pergunta e ninguém respondeu, mas lá vai de novo.
Tenho que transferir registro de uma banco de dados para outro, obs: as [u:713a9615d3]conecções[/u:713a9615d3] (conexões) são diferentes(BDE e ADO).
Estou copiando registro por registro em um loop, mas demora muito pois tenho tabelas com 200 mil registros
Gostaria de saber se tem uma forma de fazer isso utilizando SQL? Lembrando que são [u:713a9615d3]conecções [/u:713a9615d3](conexões) diferentes.
E me sugeriram que eu criasse uma arquivo texto com os registros e depois importa-lo para o outro banco. Gostaria de saber se isso seria mais rápido, e mais eficiente?
E tbém como fazer para uma consulta SQL gerar um arquivo TXT?Se tem como(pois fiquei sabendo que dá)?
Márcio Rodrigues Adão
TTI Brasil
Tecnologia
https://DBE-consultar.com.br/
Eu fiz uma consulta com and acho que estou certo. Obrigado por compartilhar
GOSTEI 0