Description:
How to Prevent Reloading Data when Calling the DataSet's Locate Method
Answer:
The TDataSet.Locate method is a good way to find the record matching a specific value. However, calling this method forces the ExpressDataController to reload all records. This may significantly affect performance, especially when operating with huge amounts of data.
Calling the Data Controller's BeginLocate and EndLocate methods allow you to prevent it from excessive reloading of data. If you need multiple calls to the TDataSet.Locate method, enclose this part of the code with BeginLocate and EndLocate.
Delphi<View>.DataController.BeginLocate;
try
<View>.DataController.DataSet.Locate( ... );
// another Locate...
finally
<View>.DataController.EndLocate;
end;