Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.09.2009, 16:28   #1
sashaslam
Пользователь
 
Регистрация: 07.07.2008
Сообщений: 24
По умолчанию Количество записей adoquery после фильтрации ???

Есть adoquery1, выводиться данные через DBGrid1, чтоб вывести количество записей использую свойство RecordCount, но нужно показать количество записей после фильрацию Адо, а вторая проблема... как постоянно заносить в какой-то эдит номер текущей позиции. Если возможно напишите свойства ????
sashaslam вне форума Ответить с цитированием
Старый 16.09.2009, 19:57   #2
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
По умолчанию

Код:
Edit1.Text:=IntToStr(DBGrid1.DataSource.DataSet.RecodrCount);
Edit2.Text:=IntToStr(ADOQuery1.RecNo);
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 17.09.2009, 12:23   #3
sashaslam
Пользователь
 
Регистрация: 07.07.2008
Сообщений: 24
По умолчанию

DBGrid1.DataSource.DataSet.RecodrCo unt - выводить постоянно общие число записей В БД, а не после фильтрации
sashaslam вне форума Ответить с цитированием
Старый 17.09.2009, 12:45   #4
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

А если ADOQuery1.RecordCount???!!!
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 17.09.2009, 16:15   #5
sashaslam
Пользователь
 
Регистрация: 07.07.2008
Сообщений: 24
По умолчанию

то же самое.... дает полностью количесво записей в БД....
sashaslam вне форума Ответить с цитированием
Старый 17.09.2009, 16:17   #6
sashaslam
Пользователь
 
Регистрация: 07.07.2008
Сообщений: 24
По умолчанию

ADOQuery1.Filtered, потом з 10000 записей остается 256.....
ADOQuery1.RecordCount - все равно даст 10000..... как определить после фильтра?
sashaslam вне форума Ответить с цитированием
Старый 18.09.2009, 12:05   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от sashaslam
ADOQuery1.RecordCount - все равно даст 10000
НЕ ПОДТВЕРЖДАЮ!
Всё работает!
пример (доказательство того, что всё работает!) во вложенном проекте.


ДОБАВЛЕНО!
благодаря ещё одному вопросу sashaslam я понял,
почему у ТС не работает RecordCount!!!!

Потому что фильтрация записей идёт через процедуру onFilterRecord
а не через стандартную cтроку фильтрации .Filter
Query НЕ МОЖЕТ ЗНАТЬ КОЛИЧЕСТВА ЗАПИСЕЙ, который отфильтруются благодаря хитрым манипуляциям в процедуре отбора onFilterRecord
Вложения
Тип файла: rar AdoFiltered.rar (281.5 Кб, 122 просмотров)

Последний раз редактировалось Serge_Bliznykov; 18.09.2009 в 12:21.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.09.2009, 12:22   #8
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

А у меня руки проверить еще не дошли. Я уж начал сомневаться в своих знаниях после 2х лет работы с ADO... ))))
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 18.09.2009, 19:06   #9
АНК
Пользователь
 
Регистрация: 01.09.2009
Сообщений: 30
По умолчанию

Цитата:
DBGrid1.DataSource.DataSet.RecodrCo unt - выводить постоянно общие число записей В БД, а не после фильтрации
RecodrCount указывает ТОЛЬКО сколько записей содержит DataSet в данный момент.
Справка по TCustomADODataSet::RecordCount:
Цитата:
Note: The number of rows indicated might be less than the total number of rows in a table. This can happen when the rows retrieved as a recordset for a dataset component are a conditional subset of the table.
Т.е. -
"Число строк может быть меньше чем общее количество строк в таблице. Это может случиться, когда строки, найденные как recordset компонента набора данных - условное подмножество таблицы."
АНК вне форума Ответить с цитированием
Старый 18.09.2009, 22:30   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

хм...м. а я был уверен, что тема раскрыта..

АНК, а это Вы к чему написали?
если Вы наложили AdoQuery.Filter = 'условие_фильтрации' — количество rows в датасет уменьшается?...

Как Вы можете увидеть в примере, который я привёл выше, RecordCount показывает количество отфильтрованных записей...

Другое дело, что если фильтрацией данных заниматься самому (через проверку условий и выставления признака Accept в процедуре OnFilterRecord), тогда RcordCount вернёт количество записей для условия, заданного в выражении Filter, несмотря на то, что отображаемых записей может быть меньше...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Посчитать количество записей в БД ACCESS Dux БД в Delphi 22 31.03.2015 20:36
Удаление скрытых столбцов после фильтрации. Garrison Microsoft Office Excel 7 02.09.2009 16:27
Как подсчитать количество записей в списке Grisha248 Помощь студентам 2 23.06.2009 10:43
Количество параметров ADOQuery AnnNet БД в Delphi 3 24.09.2008 10:42
Количество записей в FastReport4 Askat БД в Delphi 1 02.07.2007 23:37