Помимо обычной фильтрации , основанной на
свойствах Filter, Filtered и
методе-обработчике onFilterRecord, класс
TCustomADODataSet предоставляет разработчику дополнительные возможности.
задает групповой фильтр для записей, основываясь на информации о состоянии каждой записи набора данных, подобно рассмотренному выше свойству
RecordStatus.
Фильтрация возможна по следующим параметрам:
fgUnassigned.—
фильтр не задан;
fgNone — все ограничения,
заданные фильтром, снимаются, отображаются все записи набора данных;
fgPendingRecords — отображаются
измененные записи, несохраненные в хранилище данных при вызове метода
updateBatch или cancelBatch;
fgAffectedRecords — показываются
записи, обработанные при последнем сохранении в хранилище данных;
fgFetchedRecords — имеем
записи, полученные при последнем обновлении из источника данных;
fgPredicate — видны только
удаленные записи;
fgConfiictingRecords —
отображаются модифицированные записи, при сохранении которых в хранилище данных
возникла ошибка.
Для того чтобы групповая фильтрация заработала, необходимы два дополнительных условия. Во-первых, фильтрация должна быть включена — свойство
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.
Знаете ли Вы, что любой разумный человек скажет, что не может быть улыбки без кота и дыма без огня, что-то там, в космосе, должно быть, теплое, излучающее ЭМ-волны, соответствующее температуре 2.7ºК. Действительно, наблюдаемое космическое микроволновое излучение (CMB) есть тепловое излучение частиц эфира, имеющих температуру 2.7ºK. Еще в начале ХХ века великие химики и физики Д. И. Менделеев и Вальтер Нернст предсказали, что такое излучение (температура) должно обнаруживаться в космосе. В 1933 году проф. Эрих Регенер из Штуттгарта с помощью стратосферных зондов измерил эту температуру. Его измерения дали 2.8ºK - практически точное современное значение. Подробнее читайте в FAQ по эфирной физике.