| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > Как выбрать и записать общее количество записей из |
| Автор: Guest 31.1.2005, 22:20 |
| Здрасте всем!!! Скажите пожалуйста, как мне выбрать общее количество записей из Базы, запихнуть это число в переменную, и затем эту переменную присвоить Label1.Caption := AllRecords; ? У меня используется Access, запросы делаю через ADOQuery на DBGrid. Плиз! Заранее благодарю! |
| Автор: Kesh 31.1.2005, 23:53 |
| А что, разве ADOQuery.RecordCount - не работает?.. |
| Автор: Medved 1.2.2005, 00:55 | ||
|
| Автор: Kesh 1.2.2005, 01:04 | ||
Pegas Я понимаю, что предложенное тобой решение оптимальнее с точки зрения экономии ресурсов, но обрати внимание, что человек все равно
Так имеет ли смысл прогонять еще один запрос для того, чтобы получить количество записей?.. |
| Автор: Medved 1.2.2005, 01:41 | ||
| Я просто показал, как это можно сделать через запрос. а вообще-то конечно в этом случае лучше:
|
| Автор: Vit 1.2.2005, 16:46 | ||||
не будет работать Надо так:
Только не считайте меня идиотом и не возражайте что "У МЕНЯ РАБОТАЕТ". Собака порылась в том что ADO - это клиент сервер, и прием данных осуществляется по частям в зависимости от размера буффера поэтому пока не перейдёшь на последнюю запись RecordCount будет для маленьких выборок показывать правильное значение, а для больших - то количество записей которое поместилось в локальный буффер. Однако на серьёзном клиент сервере такое хождение по выборке вперёд назад, особенно если выборка большая, приводит к 2м негативным явлениям: 1) Сетевой трафик, несколько раз перебрасываются данные с сервера на клиент 2) Накладывание дополнительных блокировок на сервер, обычно стоит на сервере page lock - т.е. блокируется страница на которой находится курсор, "гуляние" курсора по таблице вызывает увеличение блокировок и негативно сказывается на других клиентах работающих с таблицей. Поэтому если выборка маленькая, то этот метод применим, а если большая, то лучше тем же или отдельным запросом сделать Select Count(*) |
| Автор: Kesh 1.2.2005, 18:25 |
| Vit Спасибо... как то не задумывался об этом... |