![]() |
|
|
![]()
|
|
| Guest |
|
|||
|
Unregistered |
Здрасте всем!!!
Скажите пожалуйста, как мне выбрать общее количество записей из Базы, запихнуть это число в переменную, и затем эту переменную присвоить Label1.Caption := AllRecords; ? У меня используется Access, запросы делаю через ADOQuery на DBGrid. Плиз! Заранее благодарю! |
|||
|
||||
| Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 3 Всего: 54 |
А что, разве ADOQuery.RecordCount - не работает?..
-------------------- ![]() |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 1 Всего: 154 |
-------------------- |
|||
|
||||
| Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 3 Всего: 54 |
Pegas Я понимаю, что предложенное тобой решение оптимальнее с точки зрения экономии ресурсов, но обрати внимание, что человек все равно
Так имеет ли смысл прогонять еще один запрос для того, чтобы получить количество записей?.. -------------------- ![]() |
|||
|
||||
| Medved |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 7209 Регистрация: 15.9.2002 Где: Kazakhstan, Astan a Репутация: 1 Всего: 154 |
Я просто показал, как это можно сделать через запрос.
а вообще-то конечно в этом случае лучше:
-------------------- |
|||
|
||||
| Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 14 Всего: 207 |
не будет работать Надо так:
Только не считайте меня идиотом и не возражайте что "У МЕНЯ РАБОТАЕТ". Собака порылась в том что ADO - это клиент сервер, и прием данных осуществляется по частям в зависимости от размера буффера поэтому пока не перейдёшь на последнюю запись RecordCount будет для маленьких выборок показывать правильное значение, а для больших - то количество записей которое поместилось в локальный буффер. Однако на серьёзном клиент сервере такое хождение по выборке вперёд назад, особенно если выборка большая, приводит к 2м негативным явлениям: 1) Сетевой трафик, несколько раз перебрасываются данные с сервера на клиент 2) Накладывание дополнительных блокировок на сервер, обычно стоит на сервере page lock - т.е. блокируется страница на которой находится курсор, "гуляние" курсора по таблице вызывает увеличение блокировок и негативно сказывается на других клиентах работающих с таблицей. Поэтому если выборка маленькая, то этот метод применим, а если большая, то лучше тем же или отдельным запросом сделать Select Count(*) -------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
| Kesh |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Эксперт Сообщений: 2488 Регистрация: 31.7.2002 Где: Германия, Saarbrü cken Репутация: 3 Всего: 54 |
Vit Спасибо... как то не задумывался об этом...
-------------------- ![]() |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |