Fórum Transferência de Dados #392302
12/12/2010
0
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
Curtir tópico
+ 0
Responder
Posts
12/12/2010
Wesley Yamazack
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
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
Responder
Gostei + 0
10/03/2011
Aloisio Santos
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???
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)