Fórum Delphi Mover dados em lote de uma tabela para outra #537315
16/11/2015
0
Como faço para mover dados em lote de uma tabela para outra ? Hoje estou utilizando a cópia linha a linha, porém está muito lento, abaixo o código, estou transferindo dados utilizando o ODBC para o Banco SQL Server
While ( not qryOrigem.Eof ) and ( wCont3 <> wContador ) do
begin
qryDestino.Insert;
pgbStatus.Max := qryOrigem.RecordCount;
pgbStatus.Width := shpStatus.Left - 15;
For iCampTab := 0 to High(vCampoO) do begin
if (Trim(vCampoO[iCampTab])<>'') and (Trim(vCampoD[iCampTab])<>'') then
qryDestino.FieldByName(vCampoD[iCampTab]).Value :=
qryOrigem.FieldByName(vCampoO[iCampTab]).Value;
end;
qryDestino.Post;
wCont3 := wCont3 + 1;
pgbStatus.Position := pgbStatus.Position + 1;
pgbStatus.Update;
Application.ProcessMessages;
qryOrigem.Next;
end;
While ( not qryOrigem.Eof ) and ( wCont3 <> wContador ) do
begin
qryDestino.Insert;
pgbStatus.Max := qryOrigem.RecordCount;
pgbStatus.Width := shpStatus.Left - 15;
For iCampTab := 0 to High(vCampoO) do begin
if (Trim(vCampoO[iCampTab])<>'') and (Trim(vCampoD[iCampTab])<>'') then
qryDestino.FieldByName(vCampoD[iCampTab]).Value :=
qryOrigem.FieldByName(vCampoO[iCampTab]).Value;
end;
qryDestino.Post;
wCont3 := wCont3 + 1;
pgbStatus.Position := pgbStatus.Position + 1;
pgbStatus.Update;
Application.ProcessMessages;
qryOrigem.Next;
end;
Ctrle
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)