Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.11.23;
Скачать: CL | DM;

Вниз

DELPHI 7:Как вывести в label текущее число записей таблицы DBGrid   Найти похожие ветки 

 
Koudelka   (2013-11-22 21:45) [0]

Всем привет. Ребятки, не получается вывести в 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.

Преподаватель предложил создать цикл и в нем посчитать сумму отобразившихся полей таблицы, которая открыта, как лучше это сделать? Или все-таки доработать эти варианты?


 
Jeer ©   (2013-11-22 22:05) [1]

Ну ты попробуй просто
*.SQL.Text := "SELECT * FROM MyTable";

и затем *.RecordCount

Хотя база не указана и возможны варианты.


 
Jeer ©   (2013-11-22 22:07) [2]

А таблицы или запрос надо переоткрывать после модификации числа записей в таблице, чудеса редко случаются.


 
[ВладОшин] ©   (2013-11-22 22:32) [3]

сдается, что не там смотрите, не того источника данных
попробуйте посмотреть у того, который прикреплен к гриду
label2.Caption:="Отображено записей: " + IntToStr(DBGrid.DataSource.DataSet.RecordCount );


> база не указана и возможны варианты.

это да..
там вообще может быть -1 :)
в некотрых случаях.


 
Koudelka   (2013-11-22 22:58) [4]

label2.Caption:="Отображено записей: " + IntToStr(DBGrid.DataSource.DataSet.RecordCount );

- не поменял ситуацию, значение label"a как и в моем примере, меняется только с переходом из одной таблицы в другую, а после фильтрации ,  к сожалению, остается прежним, хотя кол-во видимых полей меняется.


 
Koudelka   (2013-11-22 22:58) [5]

label2.Caption:="Отображено записей: " + IntToStr(DBGrid.DataSource.DataSet.RecordCount );

- не поменял ситуацию, значение label"a как и в моем примере, меняется только с переходом из одной таблицы в другую, а после фильтрации ,  к сожалению, остается прежним, хотя кол-во видимых полей меняется.


 
Koudelka   (2013-11-22 23:17) [6]

------------------Ответ найден! всем спасибо! ------------------

procedure TDataModule2.DataSource1DataChange(Sender: TObject;
 Field: TField);
begin
if DataSource1.DataSet.RecNo<>-1 then Form1.Label2.Caption:=Format("Записей: %d",[DataSource1.DataSet.RecordCount]);
end;


 
Ega23 ©   (2013-11-25 10:35) [7]


> сколько в данный момент отображено записей в таблице

Записей в НД 100, а вот в гриде отображено в данный момент только 20 например.
Через DataLink можно достучаться, там было что-то типа displaycount



Страницы: 1 вся ветка

Текущий архив: 2014.11.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.005 c
15-1397409286
Пит
2014-04-13 21:14
2014.11.23
HTML -> управление шириной линии <hr />


15-1397418465
Jeer
2014-04-13 23:47
2014.11.23
И все же - жизнь продолжается..


2-1385310079
вова
2013-11-24 20:21
2014.11.23
Invalid Pointer operation


4-1270489835
Decoding
2010-04-05 21:50
2014.11.23
CreateMessageDialog


11-1255389025
Валера
2009-10-13 03:10
2014.11.23
Размер файла строчкой в KOL.