![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DELPHI 7:Как вывести в label текущее число записей таблицы DBGrid [D7]
Koudelka © (2013-11-22 21:45:00)Всем привет. Ребятки, не получается вывести в label ( а конкретно в label2.text) сколько в данный момент отображено записей в таблице. Волнует кол-во записей, которое получается ПОСЛЕ различных фильтраций таблицы, это число должно обновляться после применения фильтрации или после удаления записи, т.е. тогда, когда кол-во записей таблицы уменьшается или увеличивается, поэтому код, который представлен ниже не подошел ( т.к. он всегда показывает одно и тоже число записей в Table, а не число текущего кол-ва записей):
label2.Caption:='Отображено записей: ' + IntToStr(datamodule2.table1.RecordCount );
пробовала и 2 вариант:
datamodule2.Query1.Active:= false;
datamodule2.Query1.SQL.Clear;
datamodule2.Query1.SQL.Add('SELECT COUNT (*) AS ''COUNT'' FROM [ABONENT]');
datamodule2.Query1.Active:= TRUE;
label2.caption := IntToStr(datamodule2.Query1.RecordCount);
- тут вылетает ошибка Invalid use of keyword. Token: FROM.
Преподаватель предложил создать цикл и в нем посчитать сумму отобразившихся полей таблицы, которая открыта, как лучше это сделать? Или все-таки доработать эти варианты?
Ega23 (2013-11-25 10:35:00) [1]
> сколько в данный момент отображено записей в таблице
Записей в НД 100, а вот в гриде отображено в данный момент только 20 например.
Через DataLink можно достучаться, там было что-то типа displaycount
Koudelka (2013-11-22 23:17:00) [2]------------------Ответ найден! всем спасибо! ------------------
procedure TDataModule2.DataSource1DataChange(Sender: TObject;
Field: TField);
begin
if DataSource1.DataSet.RecNo<>-1 then Form1.Label2.Caption:=Format('Записей: %d',[DataSource1.DataSet.RecordCount]);
end;
Koudelka (2013-11-22 22:58:00) [3]label2.Caption:='Отображено записей: ' + IntToStr(DBGrid.DataSource.DataSet.RecordCount );
- не поменял ситуацию, значение label'a как и в моем примере, меняется только с переходом из одной таблицы в другую, а после фильтрации , к сожалению, остается прежним, хотя кол-во видимых полей меняется.
Koudelka (2013-11-22 22:58:00) [4]label2.Caption:='Отображено записей: ' + IntToStr(DBGrid.DataSource.DataSet.RecordCount );
- не поменял ситуацию, значение label'a как и в моем примере, меняется только с переходом из одной таблицы в другую, а после фильтрации , к сожалению, остается прежним, хотя кол-во видимых полей меняется.
[ВладОшин] (2013-11-22 22:32:00) [5]сдается, что не там смотрите, не того источника данных
попробуйте посмотреть у того, который прикреплен к гриду
label2.Caption:='Отображено записей: ' + IntToStr(DBGrid.DataSource.DataSet.RecordCount );
> база не указана и возможны варианты.
это да..
там вообще может быть -1 :)
в некотрых случаях.
Jeer (2013-11-22 22:07:00) [6]А таблицы или запрос надо переоткрывать после модификации числа записей в таблице, чудеса редко случаются.
Jeer (2013-11-22 22:05:00) [7]Ну ты попробуй просто
*.SQL.Text := 'SELECT * FROM MyTable';
и затем *.RecordCount
Хотя база не указана и возможны варианты.