Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
ВнизВопрос по RecordCount Найти похожие ветки
← →
AlexeyMir (2008-03-06 10:13) [0]Подскажите пожалуйста, я использую IBQuery. Почему чтобы узнать правильное количество записей мне нужно перейти на последнюю запись выборки IBQuery1.Last, а потом уже выполнять IBQuery1.RecordCount?
← →
Johnmen © (2008-03-06 10:15) [1]Потому, что при выполнении запроса на клиента считывается только потребное ему количество записей. По мере потребности они докачиваются.
Об этом можно почитать в хелпах и доках.
ЗЫ
Кто использует RecordCount, тот ССЗБ.
← →
DrPass © (2008-03-06 10:19) [2]
> Почему чтобы узнать правильное количество записей мне нужно
> перейти на последнюю запись выборки IBQuery1.Last, а потом
> уже выполнять IBQuery1.RecordCount?
Чтобы узнать правильное количество записей, нужно выполнить запрос select count(*) from..., а не использовать RecordCount
← →
Sergey13 © (2008-03-06 10:30) [3]> [0] AlexeyMir (06.03.08 10:13)
> я использую IBQuery.
IBDataSet лучше.
> [2] DrPass © (06.03.08 10:19)
Это количество записей в БД, а не в датасете.
ИМХО можно юзать и то и это, но четко представляя как это работает и не основывая только на этом логику работы с данными.
← →
DrPass © (2008-03-06 11:24) [4]
> Sergey13 © (06.03.08 10:30) [3]
> > [2] DrPass © (06.03.08 10:19)
> Это количество записей в БД, а не в датасете.
Естественно. Количество выфетченных записей в датасете может интересовать грид для корректного отображения скроллбара, но уж никак не прикладного программиста.
← →
Sergey13 © (2008-03-06 11:32) [5]> [4] DrPass © (06.03.08 11:24)
Я немного не к тому вел. Количество записей в датасете может не совпадать с количеством данных в БД (по тому же условию) в разные моменты времени. Особенно при многопользовательской работе.
← →
DrPass © (2008-03-06 11:37) [6]
> Количество записей в датасете может не совпадать с количеством
> данных в БД (по тому же условию) в разные моменты времени
Нет, понятное дело, что к этому надо тоже с умом подходить - если такая проблема существует, разруливать транзакциями, чтобы select count(*) from видел только те же записи, что и соответствующий select fields from
А в некоторых случаях (например, если запрос тяжелый, а записей возвращает сравнительно немного) даже FetchAll + RecordCount будут наиболее правильным решением...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.049 c