Transferência de Dados

Delphi

12/12/2010

Caros colegas,   Existe uma maneira de transferir os dados de uma tabela para outra, de forma mais rápida do que a que estou utilizando.   Ex.:   dm_.QryHistoricoVendas.Append; dm_.QryHistoricoVendasData.Value := dm_.QryVendasData.Value; dm_.QryHistoricoVendasNPedido.Text := dm_.QryVendasNPedido.Value; dm_.QryHistoricoVendasMovimento.Text := dm_.QryVendasMovimento.Text; dm_.QryHistoricoVendasDescricao.Text := dm_.QryVendasDescricao.Text; dm_.QryHistoricoVendasQtde.Value := dm_.QryVendasQTde.Value; dm_.QryHistoricoVendasValor.Value := dm_.QryVendasValor.Value; dm_.QryHistoricoVendasTotaldoItem.Value := dm_.QryVendasTotalDoItem.Value; dm_.QryHistoricoVendas.Post;   dm_.QryVendas.Delete;     Como dá para notar, as duas tabelas têm a mesma definição.   Certo da atenção de todos, antecipadamente agradeço.
Aloisio Santos

Aloisio Santos

Curtidas 0

Respostas

Wesley Yamazack

Wesley Yamazack

12/12/2010

Olá meu caro,

Fiz um exemplo aqui usando ClientDataSet, mas funciona da mesma forma basta você adaptar.

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;

Obs : Como você pode notar estou fazendo um loop dentro do outro ;
While serve para varrer todas as linhas do CDSCliente;
For serve para varrer todos os campos do CDSCLiente, e associar ao CDSBackup;

Porém os campos dos mesmos devem estar configurados na mesma posição, ok ?


Um abraço

Wesley Y
wyamazack@hotmail.com
GOSTEI 0
Aloisio Santos

Aloisio Santos

12/12/2010

Wesley, boa tarde... tire-me uma dúvida... no código que vc me enviou... 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; begin;     após o CDSBackup.Post existe um ";" e na linha de baixo existe um: CDSCliente.Delete ou CDSCliente.Next???
GOSTEI 0
POSTAR