Cópia geral

Delphi

27/05/2013

Tenho duas tabelas iguais, e preciso copiar o conteúdo de uma para a outra. Como faço isso de uma maneira mais prática, do que copiando campo a campo?
Já postei esta mesma dúvida há um tempo atrás, estava salvo num HD externo que perdi. E não estou conseguindo localizar dentro do fórum.

Agradeço a ajuda desde já.
Aloisio Santos

Aloisio Santos

Curtidas 0

Respostas

David Sylvestre

David Sylvestre

27/05/2013

Não sei se entendi bem o que você está querendo.
Mas seria algo do tipo
Insert into TabelaDestino (campos...)
select
   a.Campos...
from TabelaOrigem a
left outer
join TabelaDestino b
   on a.Chave = b.Chave
where
   b.Chave is null


Lembrando que o left join é para não ir registros que você já tenha inserido na outra tabela, evitando assim duplicate key.
GOSTEI 0
Aloisio Santos

Aloisio Santos

27/05/2013

A situação é a seguinte: tenho uma tabela ALUNOS e outra tabela ARQUIVO_MORTO, ambas de igual estrutura.
Quando o aluno sai da escola, seu registro é transportado para a tabela ARQUIVO_MORTO. Mas não quero levar campo a campo, pq, como já mencionei acima, um colega do fórum já havia mencionado como fazer, inclusive eu já utilizei, mas faz tempo, não lembro em que projeto foi, já apaguei o arquivo e não sei onde guardei o .TXT com a rotina. :$

Fico no aguardo.
GOSTEI 0
Aloisio Santos

Aloisio Santos

27/05/2013

Obrigado caros colegas. Consegui encontrar o arquivo... e para constar, até mesmo pq possa ser que alguém precise tb, segue abaixo o código exemplo...


procedure TFrmPrincipal.BitBtn1Click(Sender: TObject);
var
I: Integer;
begin
CDSCliente.First;
while nOT CDSCliente.Eof do
begin
CDSBackup.Insert;
for I := 0 to CDSCliente.FieldCount - 1 do
CDSBackup.Fields[I].AsString := CDSCliente.Fields[I].AsString;
CDSBackup.Post
end;
end;
GOSTEI 0
POSTAR