Ver Mensaje Individual
  #4  
Antiguo 21-11-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
En realidad si

Si no tenes problemas deberias dejar todo como esta.

Si siempre van a ser pocos registros no vas a tener problema con el locate.

Si son muchos registros la pregunta es, porque estas lanzando un locate sobre un Dataset con tantos registros? Lo mas logico es directamente traer un Dataset mas "filtrado" (tip: ejecutar SQL y traer el resultado sobre un TDataset es MUCHO mas rapido que traer todo y luego ejectar "el equivalente", ya sea locate, filter, order, etc)

Otro buen truco es, siempre que se va a realizar un proceso potencialmente largo sobre un Dataset, que esta enlazado a un control db, deshabilitar el enlace momentaneamente y volver a activarlo cuando termina el proceso

masomenos asi:

Código Delphi [-]
  Dataset.DisableControls; // DBGrids, DBEdits, etc, quedan "desconectados", al mover el Dataset o editar valores de campos no "refrescan"
  try
    while not Dataset.Eof do
    begin
      Foo(Dataset);
      Dataset.Next;
    end;
  finally
    Dataset.EnableControls;
  end;
Responder Con Cita