Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.08.29;
Скачать: CL | DM;

Вниз

Фильтрация в TIBQuery   Найти похожие ветки 

 
maximf   (2002-08-08 13:00) [0]

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


 
elv ©   (2002-08-08 13:04) [1]

В query нет фильтра. Записи отбираются select"ом c и "фильруются" с помощью where.


 
fnatali ©   (2002-08-08 13:07) [2]

Используй OnFilterRecord


 
Leran2002 ©   (2002-08-08 13:10) [3]

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


 
Leran2002 ©   (2002-08-08 13:19) [4]

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


 
maximf   (2002-08-08 14:22) [5]

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

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

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

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

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


 
fnatali ©   (2002-08-08 14:26) [6]

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


 
Johnmen ©   (2002-08-08 14:28) [7]

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


 
maximf   (2002-08-08 14:52) [8]

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


 
Johnmen ©   (2002-08-08 14:58) [9]

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


 
AlexSam   (2002-08-08 15:56) [10]

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


 
Johnmen ©   (2002-08-08 16:00) [11]

>AlexSam (08.08.02 15:56)

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

Не всегда !

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

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


 
AlexSam   (2002-08-08 16:06) [12]

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


 
elv ©   (2002-08-08 16:28) [13]

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

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


 
Johnmen ©   (2002-08-08 16:31) [14]

>AlexSam

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


 
AlexSam   (2002-08-08 16:44) [15]

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


 
elv ©   (2002-08-08 16:47) [16]

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

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


 
elv ©   (2002-08-08 16:50) [17]

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

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



 
AlexSam   (2002-08-08 16:53) [18]

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


 
Johnmen ©   (2002-08-08 16:54) [19]

AlexSam
elv ©

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


 
elv ©   (2002-08-08 17:18) [20]

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

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



 
AlexSam   (2002-08-08 17:29) [21]

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


 
elv ©   (2002-08-08 20:18) [22]

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

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




Страницы: 1 вся ветка

Текущий архив: 2002.08.29;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.01 c
14-95976
Елена
2002-07-30 08:59
2002.08.29
Шестая версия


4-96030
mike.dld
2002-06-27 15:45
2002.08.29
Рисунок из файла


1-95809
аааааа
2002-08-20 05:17
2002.08.29
Как подключиться к удаленной БД MySQL?


14-95974
FLIZ_
2002-08-05 13:32
2002.08.29
Чем просмотреть *.WMV файлы?


1-95754
Squ
2002-08-19 12:52
2002.08.29
Обработка исключений (exception)