воскресенье, 17 апреля 2011 г.

Узнать количество записей в фильтрованном Dataset в Lazarus.

procedure TFmMain.Button1Click(Sender: TObject);
var
cnt: Integer;
bmk: TBookmark;
begin
inherited;
DbGrid1.DataSource.DataSet.DisableControls; // Это - датасет грида
cnt := 0;
bmk := DbGrid1.DataSource.DataSet.GetBookmark; // Запомнили позицию
try // Считаем
DbGrid1.DataSource.DataSet.First;
while not FmMain.ListKvit.DataSource.DataSet.Eof do
begin
Inc(cnt);
DbGrid1.DataSource.DataSet.Next;
end;
DbGrid1.DataSource.DataSet.GotoBookmark(bmk); // Вернулись
finally
DbGrid1.DataSource.DataSet.FreeBookmark(bmk);
DbGrid1.DataSource.DataSet.EnableControls;
end;
ShowMessage('Всего записей = ' + IntToStr(cnt));
end;                 

Комментариев нет: