Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как подсчитать число записей для ЛЮБОГО запроса ? [D5, D6, D7, IB6.x]


Vorobyev Sergey ©   (2003-05-27 11:13:00) 

Привет всем!
Есть какой нибудь запрос (select * from ... where .. join и т.п.)
с любыми комбинациями выражений..
Так вот есть ли способ подсчитать число записей выдаваемых запросом ?
---
Пояснение:
в программе результат запроса отображается в гриде.
Необходимо в строке статуса отобразить полное количество записей, которые выдал запрос,
причем заранее неизвестно какие будут запросы..


DarkGreen   (2003-05-27 13:54:00) [1]

А что мешает сделать:

select count(*), Ваши_поля_для_отображения, from Ваши_таблицы ....

А в гриде первое поле не светить, хотя select count(*) - это мраки.


Vorobyev Sergey   (2003-05-27 12:14:00) [2]


> А еще правильнее пересмотреть бизнес-логику, может окажется,
> что и не стоит овчинка выделки, и нафиг кол-во записей не
> нужно.


Исключено..
Хотя выход я уже нашел..


Danilka   (2003-05-27 12:02:00) [3]

Sergey13 © (27.05.03 11:59)
:))
просто настроение сегодня что-то хорошее


Sergey13   (2003-05-27 11:59:00) [4]

2Danilka © (27.05.03 11:51)
>тогда можно еще вот-так:
Это ты чего такое забористое куришь? Поделись. 8-)


Danilka   (2003-05-27 11:56:00) [5]

А вообще, правильней парсить запрос на клиенте, и создавать на его основе запрос на получение кол-ва записей. Типа такого:
запрос select field1, field2 ...
делать: select count(*) ...

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


Sergey13   (2003-05-27 11:51:00) [6]

В DbGridEh можно приделать футер с таким прибамбасом, но делать он будет (подозреваю 8-) как написал Zacho © (27.05.03 11:18)


Danilka   (2003-05-27 11:51:00) [7]

Zacho © (27.05.03 11:39)
жаль.

тогда можно еще вот-так:
create view xxx
...
select count(*) from xxx
drop view xxx

на некоторых таблицах это будет быстрее чем все фэтчить на клиента. :))


Zacho   (2003-05-27 11:39:00) [8]


> Danilka © (27.05.03 11:35)

Нет в IB SELECT ... FROM (SELECT ...


Danilka   (2003-05-27 11:35:00) [9]

а select count(*) from (select ...)
в IB не пройдет?


Zacho   (2003-05-27 11:18:00) [10]

Для "любого" запроса - никак.
Только FetchAll + RecordCount.


Соловьев   (2003-05-27 11:18:00) [11]

Open;
FetchAll;
Edit1.Text := Format("Кол-во записей %d",[RecordCount]);


Наверх

Титульная страница Поиск, карта сайта Написать письмо