Loop muito lento
Pessoal tenho essa rotina de importação, mas quando passa dos 2000 registrios ela fica muito lenda. Aguem pode me dar uma dica.
O seguinte o banco origem é IB e o de destino é Mysql. desde já agradeço a todos.
while not CDTodos.EOF do
begin
try
ClientDataSet1.Open;
ClientDataSet1.Insert;
ClientDataSet1CPF.AsString := CDTodosCPF.AsString;
ClientDataSet1DATA.AsDateTime := CDTodosDATA.AsDateTime;
ClientDataSet1NOME.AsString := CDTodosVITIMA.AsString;
ClientDataSet1NUM_SINISTRO.AsString := CDTodosNUM_SINISTRO.AsString;
ClientDataSet1PROCURADOR_ID.AsInteger := CDTodosPROCURADOR_ID.AsInteger;
ClientDataSet1SEQUENCIAL.AsString := CDTodosSEQUENCIAL.AsString;
ClientDataSet1STATUS.AsString := CDTodosSTATUS.AsString;
ClientDataSet1.ApplyUpdates(-1);
CDTodos.Next;
end;
O seguinte o banco origem é IB e o de destino é Mysql. desde já agradeço a todos.
while not CDTodos.EOF do
begin
try
ClientDataSet1.Open;
ClientDataSet1.Insert;
ClientDataSet1CPF.AsString := CDTodosCPF.AsString;
ClientDataSet1DATA.AsDateTime := CDTodosDATA.AsDateTime;
ClientDataSet1NOME.AsString := CDTodosVITIMA.AsString;
ClientDataSet1NUM_SINISTRO.AsString := CDTodosNUM_SINISTRO.AsString;
ClientDataSet1PROCURADOR_ID.AsInteger := CDTodosPROCURADOR_ID.AsInteger;
ClientDataSet1SEQUENCIAL.AsString := CDTodosSEQUENCIAL.AsString;
ClientDataSet1STATUS.AsString := CDTodosSTATUS.AsString;
ClientDataSet1.ApplyUpdates(-1);
CDTodos.Next;
end;
Debug
Curtidas 0
Respostas
Marcelo_mileris
23/08/2006
Posso estar dizendo bobagem... mas se vc colocar o ClientDataSet1.Open antes do while e ao invés de dar o ApplyUpdates dar um post e ao terminar o loop dar um ApplyUpdates
ClientDataSet1.Open; while not CDTodos.EOF do begin try ClientDataSet1.Insert; ClientDataSet1CPF.AsString := CDTodosCPF.AsString; ClientDataSet1DATA.AsDateTime := CDTodosDATA.AsDateTime; ClientDataSet1NOME.AsString := CDTodosVITIMA.AsString; ClientDataSet1NUM_SINISTRO.AsString := CDTodosNUM_SINISTRO.AsString; ClientDataSet1PROCURADOR_ID.AsInteger := CDTodosPROCURADOR_ID.AsInteger; ClientDataSet1SEQUENCIAL.AsString := CDTodosSEQUENCIAL.AsString; ClientDataSet1STATUS.AsString := CDTodosSTATUS.AsString; ClienteDataSet1.Post; CDTodos.Next; end; ClientDataSet1.ApplyUpdates(-1);
GOSTEI 0
Marco Salles
23/08/2006
Posso estar dizendo bobagem... mas se vc colocar o ClientDataSet1.Open antes do while e ao invés de dar o ApplyUpdates dar um post e ao terminar o loop dar um ApplyUpdates
ta dizendo bobagem não...
GOSTEI 0