Фильтрация

Помимо обычной фильтрации , основанной на свойствах Filter, Filtered и методе-обработчике onFilterRecord, класс TCustomADODataSet предоставляет разработчику дополнительные возможности.

Свойство

TFilterGroup = (fgUnassigned, fgNone, fgPendingRecords, fgAffectedRecords, fgFetchedRecords, fgPredicate, fgConflictingRecords); 

property FilterGroup: TFilterGroup;

задает групповой фильтр для записей, основываясь на информации о состоянии каждой записи набора данных, подобно рассмотренному выше свойству RecordStatus.

Фильтрация возможна по следующим параметрам:

Для того чтобы групповая фильтрация заработала, необходимы два дополнительных условия. Во-первых, фильтрация должна быть включена — свойство Filtered должно иметь Значение True

Во- вторых , свойство LockType должно иметь значение ItBatchOptimistic.

with ADODataSet do begin

Close;

LockType := ItbatchOptimistic;

Filtered := True;

FilterGroup := fgFetchedRecords;

Open;

  end;

Метод

procedure FilterOnBookmarks(Bookmarks: array of const);

включает фильтрацию по существующим закладкам. Для этого предварительно необходимо при помощи метода GetBookmark установить закладки на интересующих записях. При вызове метода FilterOnBookmarks автоматически очищается свойство Filter, а свойству FilterGroup присваивается значение gUnassigned.