Delphi 7 як вивести в label поточне число записів таблиці dbgrid

DELPHI 7: Як вивести в label поточне число записів таблиці DBGrid

Всім привіт. Хлоп'ята, не виходить вивести в label (а конкретно в label2.text) скільки в даний момент відображено записів в таблиці. Хвилює кількість записів, яке виходить ПІСЛЯ різних фильтраций таблиці, це число має оновлюватися після застосування фільтрації або після видалення запису, тобто тоді, коли кількість записів таблиці зменшується або збільшується, тому код, який представлений нижче не підійшов (тому що він завжди показує одне і теж число записів в Table, # XA0; а не число поточного кол-ва записів):

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.

Викладач запропонував створити цикл і в ньому порахувати суму відобразилися полів таблиці, яка відкрита, як краще це зробити? Або все-таки доопрацювати ці варіанти?

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

і потім * .RecordCount

Хоча база не вказана і можливі варіанти.

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

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


> База не вказана і можливі варіанти.

це так..
там взагалі може бути -1 :)
в некотрих випадках.

label2.Caption: = "Відображено записів:" + IntToStr (DBGrid.DataSource.DataSet.RecordCount);

- не змінив ситуацію, значення label "a як і в моєму прикладі, змінюється тільки з переходом з однієї таблиці в іншу, а після фільтрації. # XA0; на жаль, залишається колишнім, хоча кількість видимих ​​полів змінюється.

label2.Caption: = "Відображено записів:" + IntToStr (DBGrid.DataSource.DataSet.RecordCount);

- не змінив ситуацію, значення label "a як і в моєму прикладі, змінюється тільки з переходом з однієї таблиці в іншу, а після фільтрації. # XA0; на жаль, залишається колишнім, хоча кількість видимих ​​полів змінюється.

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


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

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

Пам'ять: 0.73 MB
Час: 0.029 c

Схожі статті