![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как подсчитать число записей для ЛЮБОГО запроса ? [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]);