I have a big problem with using the filter method and the grid.
Until now I used Ado but since I entered Firedac and the updates
of type CacheUpdates the anomaly showed up .. Here it is,
When I apply the filter method of the query inside the
grid the following events are triggered:
TDBAdvGrid. DataChange and SetDataSetType.
What creates problems is the fact that as seen from the code
if FFilteredDataSet <> FDataLink.DataSet.Filtered then
if FDataLink.DataSet.Filtered then
if (DataSetType = dtSequenced) then
FOldDataSetType: = DataSetType;
DataSetType: = dtNonSequenced;
the DataSetType is set which closes the dataset
and re-opens it LOSING the changes in progress.
procedure TDBAdvGrid.SetDataSetType(const Value: TDataSetType);
if Value <> FDataSetType then
FDataSetType := Value;
if CheckDataSet then
FDataLink.DataSet.Active := false;
FDataLink.DataSet.Active := true;
With ado it was not a problem ..
but with FDQUERY I have to apply ApplyUpdates
first if I do not want to lose the changes.
Why is the data set closed and reopened by changing the filters?