ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Migração de Dados

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
souzacruz001
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 11 de Junho de 2014
Mensagens: 273

MensagemEnviada: Ter Jun 24, 2014 9:59 am    Assunto: Migração de Dados Responder com Citação

Bom dia, pessoal.

Bem, é o seguinte.
Preciso fazer uma migração de dados, de um banco de dados FDB para o PostreSQL, até aí tudo bem. Porém, o Contas a Receber do cliente, possui mais de 850 mil títulos, desde 1996. Entrei em contato com o mesmo e ele realmente que todos os títulos no sistema atual.

O contas a receber do meu sistema é da seguinte forma, possui 2 tabelas dos títulos em aberto e baixados, caso um título já esteja liquidado(total ou parcial), eu lanço ele na tabela de baixados, caso contrario apenas na tabela de títulos em aberto.

Agora a pergunta é, qual a melhor forma de fazer isso? Pois está demorando muito. Pensei em exportar o resultado do SQL que eu preciso do banco deles e simular a tabela deles no meu banco e fazer um insert a partir de um select, pois é beeem mais rápido, só que pela quantidade de registros não há esse possibilidade de exportar o SQL.

Alguém conhece outra forma?

Obrigado.
Lucas de Souza Cruz
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
mobius1qwe
Aprendiz
Aprendiz


Registrado: Quarta-Feira, 8 de Dezembro de 2010
Mensagens: 146

MensagemEnviada: Ter Jun 24, 2014 9:34 pm    Assunto: Responder com Citação

Você poderia fazer uma aplicação adaptativa pra isso...

Colocaria 2 componentes DataSet, 2 componentes DBTable (eu acho que é assim mesmo) com 2 Connection.

Cada Connection vai alimentar uma tabela, aí ce renomeia os componentes pra facilitar sua vida de forma que ce vai ter 1 connection, 1 dataset e 1 table pra cada banco.

Feito isso, ce faz um botão ou um spinner, ou um DBToolbar, pra poder ir mudando de tabela e um botão pra disparar o evento de migrar.

Basicamente ce vai fazer um "while not DataSet.EoF do begin" mandar pegar todos os dados na ordem que aparecem usando um for e esperar migrar os dados.

o código fica alguma coisa próxima disso daqui:
Código:
while not DataSet1.Eof do begin
  for I :=  to DataSet1.FieldCount -1 do begin
    DataSet2.FieldByName(DataSet1.Fields.Fields[I].FieldName) := DataSet1.FieldByName(DataSet1.Fields.Fields[I].FieldName);
  end;
  DataSet.Next;
end;


Desse jeito aí, com adaptações é claro, ce iria gravar linha por linha da tabela de origem (DataSet1) na tabela de destino(DataSet2).

Agora não estou com muito tempo, mas se caso você não conseguir resolver o problema, posto aqui o código que eu fiz pra migração de tabelas pra te ajudar a resolver isso daí.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Qua Jun 25, 2014 11:14 am    Assunto: Responder com Citação

Faz um exportador por demanda....ainda assim vai demorar, mas será menos sucetivel a falhas...
Tendo a quantidade total de registros da origem, peça para importar de 100 mil registros por vez...e quando chegar nesse limite voce comita no banco novo...ainda assim demora, mas é mais confiável.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB