InterBase. passar dados de uma tabela para outra

Delphi

27/12/2004

Como faço para passar os Dados de uma tabela para outra tudo de uma fez só. Consegui fazer mas so que so consigo mandar um dado da tabela. Queria q fosse todos os dados da tabela. Poderia ser com um [b:d6c4a59c74]with[/b:d6c4a59c74]

begin
 PDBDataSet1.Open;
    with PDBDataSet1 do
      Begin
        Append;
        i := Table1.FieldByName(´Codigo´).AsInteger;
        s := Table1.FieldByName(´Nome´).AsString;
        FieldByName(´Codigo´).AsInteger := i;
        FieldByName(´Nome´).AsString  := s;
        Post;
      end;
    PDBDataSet1.Close;
end;


Obrigado...


_celo

_celo

Curtidas 0

Respostas

Martins

Martins

27/12/2004

Como faço para passar os Dados de uma tabela para outra tudo de uma fez só. Consegui fazer mas so que so consigo mandar um dado da tabela. Queria q fosse todos os dados da tabela. Poderia ser com um [b:532ad25e00]with[/b:532ad25e00]
begin
 PDBDataSet1.Open;
    with PDBDataSet1 do
      Begin
        Append;
        i := Table1.FieldByName(´Codigo´).AsInteger;
        s := Table1.FieldByName(´Nome´).AsString;
        FieldByName(´Codigo´).AsInteger := i;
        FieldByName(´Nome´).AsString  := s;
        Post;
      end;
    PDBDataSet1.Close;
end;
Obrigado...


Uma simples questão de lógica Ok!, vc teria q varrer a tabela e transferir os dados, e como se faz isso, faça com While not Tabela.eof do, vejamos como ficaria.
begin
Table1.First;
PDBDataSet1.First;
 PDBDataSet1.Open;  
 While Not Table1.Eof do
    begin  
    with PDBDataSet1 do
      Begin
        Append;
        FieldByName(´Codigo´).AsInteger := Table1.FieldByName(´Codigo´).AsInteger;
        FieldByName(´Nome´).AsString  := Table1.FieldByName(´Nome´).AsString;
        Post;
      end;
      Table1.Next;
    end;    
    PDBDataSet1.Close;

OBS: Lá no código acima, imagino q Table1 já está aberta, se não vc tem q dar um open nela, pois é dela q vc vai extrair os dados.

* Não testei esso código, pois meu Delphi tá bixado, tenho q reinstalar ele, mas deve funcionar.

Eu costumo fazer assim.

1 - Coloco as 2 tabelas no inicio (table1 e table2) e abertas;
2 - Enquanto não chegar ao fim de Table1 faça;
3 - Importo os dados Table2Codigo.Value:=Table1Codigo_e.value;
4 - Salvo os dados em Table2 (Table2.Post);
5 - Passo para o proximo registro de Table1 (Table1.Next);

Espero q lhe ajude!

Não e se esqueci de algo, se não der certo, post aqui novamente!!

[b:532ad25e00]Martins[/b:532ad25e00]


GOSTEI 0
Gandalf.nho

Gandalf.nho

27/12/2004

Se as 2 tabelas estão no mesmo banco pode usar o comando INSERT INTO


GOSTEI 0
POSTAR