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

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

RecordCount и все, что с ним связано


Страницы:   1 2

И. Павел ©   (2010-07-13 10:41:00) 

Здравствуйте.

Уже давно встречаю в сети (да и в справке это есть) информацию о том, что RecordCount может содержать не число строк выборки, а -1 или другое значение.
В связи с этим у меня возникла пара вопросов:

1. Подскажите, пожалуйста, метод IsEmpty (для ADO, BDE, IB и т.д.) всегда будет работать правильно?

2. В редких случаях требуется все же узнать именно число строк в выборке, а не то, что она пустая/полная. Как лучше поступать в таких случаях? Есть что-нибудь быстрее FetchAll, но такое же удобное? Для Select count(*) нужны блокировки, думаю, это себя не оправдает, т.к. если выборка сложная, придется блокировать 10-20 таблиц – уж лучше подождать с фичем. А без блокировок можно получить актуальный count, а не тот, который относится к моей выборке. Может все же RecordCount не работает только при определенных условиях? Например, я замечал это при CursorLoaction = server. Если да, то при каких?

Заранее спасибо.


12   (2010-07-13 11:13:00) [21]

ну если так хочется можно написать

select count(*)[, 0, 0, '',]
from T
where a>b
union
select f1 [,f2, f3, f4]
from T
where a>b


И. Павел   (2010-07-13 10:57:00) [22]

> число строк в таблицах может измениться всегда

Насколько я понимаю, при выборке, создается временная таблица, содержащая результат. Если RecordCount работает правильно, то он возвращает именно число строк этой таблицы. А если написать SELECT count(*), то эта операция будет работать уже с общими таблицами, а они могли измениться. Хотя, может быть, я ошибаюсь.


12   (2010-07-13 10:50:00) [23]

> [2] И. Павел ©   (13.07.10 10:48)
> > вряд ли
>
> Ну например между выборкой и определением числа строк этой
> выборки, число строк в таблицах могло измениться. Вот и
> выйдет путанница.

число строк в таблицах может измениться всегда


И. Павел   (2010-07-13 10:48:00) [24]

> вряд ли

Ну например между выборкой и определением числа строк этой выборки, число строк в таблицах могло измениться. Вот и выйдет путанница.


12   (2010-07-13 10:42:00) [25]

> Для Select count(*) нужны блокировки

вряд ли


Страницы:   1 2

Наверх

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