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

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

Фильтрация в TIBQuery [D6, IB6.x]


Страницы:   1 2

maximf ©   (2002-08-08 13:00:00) 

Фильтрации в TIBQuery не оказывает никакого влияния на множество записей.
Тот же фильтр в TIBTable нормально работает.
В чём же проблема?
Использую IB Firebird, Delphi 6 UP2, компоненты IBX.
Спасибо!


elv   (2002-08-08 20:18:00) [1]

AlexSam
Если желаешь, можешь как-нибудь доехать ко мне - все покажу.
Нет, лучше ты приезжай ко мне, покажу как обойтись без этого. ;)

Тебе конечно виднее.


AlexSam   (2002-08-08 17:29:00) [2]

Если желаешь, можешь как-нибудь доехать ко мне - все покажу.


elv   (2002-08-08 17:18:00) [3]

AlexSam (08.08.02 16:53)
Я работаю в крупной конторе.
30 000 - Там описания параметров приборов.
А база данных этих приборов > 3 000 000 записей.
Вот и считай все записи, будешь год ждать....

И что пользователь делает с 3млн. записей?
Ладно, "урежем осетра", что пользователю делать с 30000 записями? Если он их просто пересчитает, у него рабочий день закончиться ;) Так что на клиенте, такой набор почти никогда не нужен.


Johnmen   (2002-08-08 16:54:00) [4]

AlexSam
elv ©

Я не спорю с вами. Правильно вы все говорите. Просто вы не обратили внимание на слово "Иногда"


AlexSam   (2002-08-08 16:53:00) [5]

Я работаю в крупной конторе.
30 000 - Там описания параметров приборов.
А база данных этих приборов > 3 000 000 записей.
Вот и считай все записи, будешь год ждать....


elv   (2002-08-08 16:50:00) [6]

Johnmen © (08.08.02 16:31)
Иногда целесообразней делать локальные фильтрации, и не грузить сервер такими пустяками. А это значительно быстрее. :)

Только данные могут устареть.


elv   (2002-08-08 16:47:00) [7]

AlexSam (08.08.02 16:44)
что же, сервер будет меньше загружен, если считывает полный набор данных без where, у меня таблица 30000 записей, так я дождаться не могу, когда она полностью считается.

Если ты сможешь придумать зачем клиенту 30000 записей, ты победил :))


AlexSam   (2002-08-08 16:44:00) [8]

Elv,Johnmen
что же, сервер будет меньше загружен, если считывает полный набор данных без where, у меня таблица 30000 записей, так я дождаться не могу, когда она полностью считается.


Johnmen   (2002-08-08 16:31:00) [9]

>AlexSam

Иногда целесообразней делать локальные фильтрации, и не грузить сервер такими пустяками. А это значительно быстрее. :)


elv   (2002-08-08 16:28:00) [10]

AlexSam (08.08.02 16:06)
Согласен, наверное, это для меня "правильно". Программирование с базами перекладывать большей частью на сервер базы данных.

Не только для тебя ;)
Насчет "не быстрее", я честно, не понял объясни.
Ну например производительность клиента выше, чем сервера. Всякое бывает.


AlexSam   (2002-08-08 16:06:00) [11]

Johnmen
Согласен, наверное, это для меня "правильно". Программирование с базами перекладывать большей частью на сервер базы данных.
Насчет "не быстрее", я честно, не понял объясни.


Johnmen   (2002-08-08 16:00:00) [12]

>AlexSam (08.08.02 15:56)

>...быстрее...

Не всегда !

>...правильнее...

В чем критерий "правильности" ?


AlexSam   (2002-08-08 15:56:00) [13]

Я согласен с elv, используй .SQL.text="select .... where". Гораздо быстрее и правильнее.


Johnmen   (2002-08-08 14:58:00) [14]

Но ничто не мешает fnatali © (08.08.02 13:07) !
Причем это значительно более гибко...


maximf   (2002-08-08 14:52:00) [15]

Жаль (:
А хелп молчит как рыба :)
Спасибо!


Johnmen   (2002-08-08 14:28:00) [16]

Свойство Filter для TIBQuery не реализовано !
Жалобы - к разработчику. :)))))


fnatali   (2002-08-08 14:26:00) [17]

A filter и не будет работать


maximf   (2002-08-08 14:22:00) [18]

Спасибо за ответы.
Уточняю. У TIBQuery есть свойства Filter и Filtered.
Я пишу:

query.Filter := ...;
query.Filtered := true;

Для соединённой с источником данных сеткой примение фильтра не меняет содержимое сетки.
Для TIBTable то же самое работает - отображает в сетке только отфильтрованные записи.

2 elv:- очевидно, можно менять текст запроса. Но иногда удобнее использовать фильтрацию с помощью свойства Filter. В исходных текстах VCL видно, что для фильтрации используется повторное исполнение запроса, как вы говорите. Если это так, то получается, что в IBX фильтрация понимается и реализуется иначе, чем в компонентах BDE и ADO - где фильтрация выполнялось локально, а не повторным исполнением запроса к серверу.

2 fnatali:Да, это работает. Только интересно разобраться с свойством Filter.


Leran2002   (2002-08-08 13:19:00) [19]

Сорь вроде я не так понял вопрос...


Leran2002   (2002-08-08 13:10:00) [20]

Фильтры в TIBQuery и TIBTable работают одинаково, т.е. сперва перегоняются отобранные записи (если это TIBQuery - то только записи соответствующие условию запроса, а если TIBTable - то все записи), и только потом к ним применяется фильтр. На то он и называется фильтр, так и положено, так что у тебя все нормально.


Страницы:   1 2

Наверх

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