Форум: "Базы";
Текущий архив: 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.49 MB
Время: 0.008 c