Fórum InterBase. passar dados de uma tabela para outra #263543

27/12/2004

0

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

Responder

Posts

27/12/2004

Martins

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]


Responder

Gostei + 0

28/12/2004

Gandalf.nho

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar