Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > В DataSet при вкл.фильтре обрат-ся ко всем записям


Автор: alexeybarkalov 2.8.2012, 10:24
Здравствуйте. 
В FIBDataSet у меня есть обработчик OnFilterRecord, который позволяет показать пользователю,
отфильтрованные записи по определенному алгоритму. Но стоит задача, для определенных
действий программно "пробежаться" по всем записям т.е. как если бы фильтр был отключен.
Скажите, пожалуйста, возможно ли такое?

Если делать так:
Код

FR := MyFIbDS.OnFilterRecord;
try
  MyFIbDS.OnFilterRecord := nil
  MyFIbDS.First;
  while not MyFIbDS.Eof do
  begin
   { что-то делаем }
   ...
  end;
finally
  MyFIbDS.OnFilterRecord := FR
end;


в принципе работает и даже не моргает особо, но вызывается OutMemory если это сделать в OnSetText одного из полей, а это мне иногда нужно.

Автор: Аватар 8.8.2012, 22:04
Запись при входе в OnSetText находится в состоянии редактирования. Перемещая указатель на другую запись вы на автомате Post для неё выполняете. Нельзя так делать. 

Автор: Akella 15.8.2012, 11:31
Лучше использовать ещё один НД.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)