Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.08.29;
Скачать: [xml.tar.bz2];

Вниз

Фильтрация в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.008 c
3-95646
masanovetc
2002-08-06 11:40
2002.08.29
Как сделать запрос при помощи временных таблиц?


1-95844
MARcoDEN
2002-08-17 15:36
2002.08.29
Проблема со вставкой ProgressBar в StatusBar


1-95864
RazorbladE
2002-08-16 12:30
2002.08.29
Высота строки в DBGrid


3-95685
sasha123
2002-08-08 13:58
2002.08.29
Подскажите, какую ОС поставить при установки MS SQL SERVER 2000.


8-95914
Max79
2002-04-20 21:17
2002.08.29
Как узнать какой цвет графического изображения под мышкой???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский