Fórum Migrar dados entre bancos #344785
21/08/2007
0
Estou fazendo uma migração entre banco Firebird para MSSQL 2005, já utilizei alguns pumps, mas tem algumas tabelas que estão falhando, estou procurando fazer a migração destas tabelas pelo Delphi, assim posso verificar aonde esta o problema nos dados.
Já utilizei os softwares EMS, DataExplorer (Delphi 2006) e o próprio import/export do MSSQL Server.
Gostaria de conectar os dois bancos e migrar dados entre eles por querys.
Sugestões...
Já utilizei os softwares EMS, DataExplorer (Delphi 2006) e o próprio import/export do MSSQL Server.
Gostaria de conectar os dois bancos e migrar dados entre eles por querys.
Sugestões...
Lelors
Curtir tópico
+ 0
Responder
Posts
21/08/2007
Turbo Drive
Não sei se é o melhor jeito, mas funciona (exemplo com o Zeos):
Coloco 2 ZDatabase, um apontando para o firebird e outro para o MSSql, e 2 ZQuery um apontando para o Zdatabase do Firebird (Zquery1)e outro para o Zdatabase do MSSQL (ZQuery2). Percorro o ZQuery1 do começo ao fim e com o Zquery2 mando gravar.
É meio arcaico, mas funciona. Vc só tem que se preocupar em colocar os campos corretamente.
Espero ter ajudado
Coloco 2 ZDatabase, um apontando para o firebird e outro para o MSSql, e 2 ZQuery um apontando para o Zdatabase do Firebird (Zquery1)e outro para o Zdatabase do MSSQL (ZQuery2). Percorro o ZQuery1 do começo ao fim e com o Zquery2 mando gravar.
ZQuery1.close; ZQuery1.sql.clear; ZQuery1.sql.add(´select campo1, campo2 from tabela´; ZQuery1.open; ZQuery1.first; while not Zquery1.eof do begin ZQuery2.close; ZQuery2.sql.clear; ZQuery2.sql.add(´insert into tabelamssql (campo1, campo2) values (´+quotedstr(zquery1.fields[0].asstring)+´, ´+quotedstr(zquery1.fields[1].asstring)+´)´); ZQuery2.execsql; Zquery1.next; end;
É meio arcaico, mas funciona. Vc só tem que se preocupar em colocar os campos corretamente.
Espero ter ajudado
Responder
Gostei + 0
21/08/2007
Lelors
desta maneira funciona... mas para cada campo terei q formatar conforme o tipo. exemplo: Date, String e Int.
obs.: minha tabela tem 55 campos.
se não encontrar uma solução mais viavel, vou ter q usar assim mesmo.
obs.: minha tabela tem 55 campos.
se não encontrar uma solução mais viavel, vou ter q usar assim mesmo.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)