Me respondo yo mismo XD, estuve revisando el código y aplique filtros al ClientDatSet principal TListado y la ejecución mejoró a 1.09 segundos, que ya me parece aceptable. Muestro el codigo final:
Código Delphi
[-]
procedure TLogicaBoletaPago.VerBoleta;
var var_cod_boleta_tmp,var_cod_boleta : string;
begin
if TListaBoletaTmp.RecordCount>0 then
begin
TListado.LogChanges := False;
TListaBoletaTmp.LogChanges := False;
TListado.Filter := '';
TListado.Filtered := False;
TListado.First;
repeat
TListado.Edit;
TListadoSELECCION.Value := 0;
TListado.Post;
TListado.Next;
until TListado.Eof;
TListado.First;
TListaBoletaTmp.First;
while TListaBoletaTmp.Eof = False do
begin
if TListaBoletaTmpSELECCION.Value=True then
begin
var_cod_boleta_tmp := TListaBoletaTmpANIO.Value +
TListaBoletaTmpMES.Value +
TListaBoletaTmpMES_SUP.Value +
TListaBoletaTmpDNI.Value +
TListaBoletaTmpTIPO_PLA.Value +
TListaBoletaTmpNRO_BOL.Value;
TListado.First;
TListado.Filter := '[ANIO] = ' + QuotedStr(TListaBoletaTmpANIO.Value) + ' and [MES] = ' +
QuotedStr(TListaBoletaTmpMES.Value) + ' and [MES_SUP] = ' + QuotedStr(TListaBoletaTmpMES_SUP.Value) +
' and [DNI] = ' + QuotedStr(TListaBoletaTmpDNI.Value);
TListado.Filtered := True;
while TListado.Eof = False do
begin
var_cod_boleta := TListadoANIO.Value +
TListadoMES.Value +
TListadoMES_SUP.Value +
trim(TListadoDNI.Value) +
TListadoTIPO_PLA.Value +
TListadoNRO_BOL.Value;
if var_cod_boleta_tmp = var_cod_boleta then
begin
TListado.Edit;
TListadoSELECCION.Value := 1;
TListado.Post;
end;
TListado.Next;
end;
end;
TListaBoletaTmp.Next;
end;
end;
TListaBoletaTmp.First;
TListado.Filter := '[seleccion] = 1';
TListado.Filtered := True;
end;
Resumiendo si alguien quiere actualizar varias filas en un ClientDataSet desconectado, debe tener en cuenta lo siguiente:
1.- Aplicar la propiedad LogChanges := False del ClientDataset.
2.- Acceder directamente a los campos y no usar FieldByName("TuCampo").
3.- Aplicar Filtros en ves de condiciones al ClientDataSet ya que esto acelera mas el proceso en actualizaciones masivas.
Sin mas espero que a alguien mas le pueda servir lo que me paso a mi.
Aunque, aún me queda la duda de como sería con "rutinas de MIDAS".
Saludos y buen fin de semana.