Atualizar tabelas

Delphi

08/04/2010

Alguem tem alguma sujestao para atualizar os dados de uma tabela que esta em outro banco de dados ? Nos 2 bancos de dados as tabelas sao identicas e possuem inclusive o mesmo nome, estou passado campo por campo fazendo um laço na tabela principal, porem tenho muitas tabelas para fazer isso, e preciso fazer uma rotina pelo delphi, para que o proprio usuario consiga fazer a atualizacao. Uso delphi 7 com clientdataset e firebird.   Obrigado
Felipe Ip

Felipe Ip

Curtidas 0

Respostas

Carlos Mazzi

Carlos Mazzi

08/04/2010

Pois é meu caro, eu tbm já passei por isso e o negócio é fazer isso mesmo que voce esta fazendo, faça laços, entre a tabela (origem) passando para a Tabela (destino)...   Já tive que fazer isso com DBs com mais de 200 tabelas.. e foi assim...   Outros da minha equipe recorreram a fazer cópias do Script e colando no Word (por exemplo) .. alterando o nome do banco de dados de Destino... e executaram depois ... Também dá certo... ainda mais no seu caso que o os bancos de dados são identicos...   Mas ainda falando de bancos de dados identicos voce pode tentar usar um aplicativo chamdo IBDataPump para Firebird/ Interbase, que por regra deveria fazer isso de migrar dados de um banco de dados para outro.   Tenta localizar na Net se nao conseguir me manda um email que eu te passo o aplicativo, caso queira conhecer...   Abraços++ (mas cada caso é um caso)    
GOSTEI 0
Robson Catunda

Robson Catunda

08/04/2010

Já tentou fazer uma rotina utilizando GetTableName e GetFieldName ? Sendo as tabelas e campos com os mesmos nomes fica fácil. Lembro de já ter feito isso..... lá pelo período paleozóico ou jurássico... Tenta aí.
GOSTEI 0
Lucilton Faria

Lucilton Faria

08/04/2010

tenta:    for x:=0 to tabela.fieldcount-1 do     tabela2.fields[x].value:=tabela.fields[x].value;      se as tabelas forem iguais isso vai funcionar em todas as tabelas do banco      
GOSTEI 0
Thiago Santana

Thiago Santana

08/04/2010


Amigo tenta algo do tipo:
 While not TabelaLocal.eof do
  begin
    Tabeladestino.Fieldbyname(campo).asstring := Tabelalocal.Fieldbyname(campo).asstrig;
  end;
Algo parecido com isso!
Vc irá varer a tabela onde encontra-se os dados e dentro do laço vc irá passar os dados da tabela onde encontra-se os dados para a tabela de destino campo por campo!
Espero tr ajudado!
AbraçoO

GOSTEI 0
Carlos Mazzi

Carlos Mazzi

08/04/2010

Tudo isso aê da certo, meu chapa..., mas vale a pena você dar uma olhada sem sistemas Pump... como IbPump... Abraços++
GOSTEI 0
POSTAR