![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Локальная фильтрация в FIBplus - не всё [D6, IB6.x]
Ajvol © (2002-11-22 20:44:00)Делаю локальную фильтрация в FIBplus по lookup полю, но выводятся у меня после запуска фильтра далеко не все записи удовлетворяющие фильтру, как будто он видит не все записи, а только первые несколько десятков и только на них и накладывает фильтр. А вот если прокрутить весь список (В DBGrid) до конца, то он начинает делать нормальную фильтрацию по всем записям.
Подскажите, что делать...
На дельфи это так:
==========
procedure TForm1.Edit1Change(Sender: TObject);
begin
pFIBDataSet2.Filtered:=false;
if Edit1.Text<>"" then
pFIBDataSet2.Filtered:=true;
end;
procedure TForm1.pFIBDataSet2FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept:=pos(Edit1.Text,pFIBDataSet2.FieldByName("NAZV").AsString) <> 0
end;
Prooksius (2002-11-23 08:31:00) [1]2 Johnmen
Happy birthday to you... :))))
Совершенно случайно ткнул на анкету и увидел, что сегодня твой день варения... :)
2 moderator - sorry for offtop
Prooksius (2002-11-23 08:27:00) [2]FIBPlus отфетчивает с сервера столько записей, сколько запросило приложение. Приложение запросило DBGrid.VisibleRowCount записей. Вот по ним и производится локальная фильтрация. (По определению локальности, только для уже отфетченных записей).
Лечение - делай pFIBDataSet.FetchAll и фильтруй.
Если НД большой - будут тормоза.
Можно фильтровать не локально. Т.е. в SQL писать запрос, где в where писать условие фильтра. Такого не будет.
Johnmen (2002-11-23 01:08:00) [3]Условие фильтра применяется только для тех записей, потребность в которых на данный момент есть у приложения (напр., отображаемых).