Filter в FIBDataSet не работает! почему???
Модератор: Модераторы
-
Джентельмен
- постоялец
- Сообщения: 162
- Зарегистрирован: 16.10.2005 10:47:26
- Откуда: Украина Донбасс Краматорск
- Контактная информация:
Filter в FIBDataSet не работает! почему???
И еще проблемка...
мне нуно...
к FIBDataSet установить фильтр, и выбрать записи только за указаный период...
я делаю так:
FIBDataSet1.Filtered := 'True';
FIBDataSet1.Filter := 'DATA_S>18.06.83 and DATA_V<18.06.85';
компилирует, все хорошо...
но на этот фильтр не обращает внимания, и выводит все записи...
кто дурак?
мне нуно...
к FIBDataSet установить фильтр, и выбрать записи только за указаный период...
я делаю так:
FIBDataSet1.Filtered := 'True';
FIBDataSet1.Filter := 'DATA_S>18.06.83 and DATA_V<18.06.85';
компилирует, все хорошо...
но на этот фильтр не обращает внимания, и выводит все записи...
кто дурак?
-
Джентельмен
- постоялец
- Сообщения: 162
- Зарегистрирован: 16.10.2005 10:47:26
- Откуда: Украина Донбасс Краматорск
- Контактная информация:
- Сергей Смирнов
- энтузиаст
- Сообщения: 595
- Зарегистрирован: 28.04.2005 13:23:25
- Откуда: Москва
- Контактная информация:
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Сергей Смирнов писал(а):Я чего-то не помню, чтобы в FIBL была реализована фильтрация. В TDataSet - тем более. У меня нет сейчас под рукой Лазаря, так что посмотреть сам не могу. Просто гляньте сами на реализацию этих FIBDataSet1.Filtered и FIBDataSet1.Filter.
Чтобы избежать такого рода проблем, для фильтрации надежнее использовать SQL-варианты ( а не через файл ) доступа к данным, как наиболее проработанные - то бишь через TSQLQuery. Тогда фильтр автоматически добавляется к WHERE-условию и делается перезапрос.
-
Джентельмен
- постоялец
- Сообщения: 162
- Зарегистрирован: 16.10.2005 10:47:26
- Откуда: Украина Донбасс Краматорск
- Контактная информация:
я это все понимаю.... что SQL надо использовать... но там тогда получаетса очень много условий для выборки, и именно посиму я хочу это все дело разделить... сначала поставить фильтр по дате, причем по двум столбцам, а потом уже SQLем делать выборку...
а фильтрация реализована, покрайне мере свойство Filtered, Filter у FIBDataSet есть... от только почему то не работает...
еще предложения...
а фильтрация реализована, покрайне мере свойство Filtered, Filter у FIBDataSet есть... от только почему то не работает...
еще предложения...
-
MageSlayer
- постоялец
- Сообщения: 216
- Зарегистрирован: 07.09.2006 12:30:44
Джентельмен писал(а):я это все понимаю.... что SQL надо использовать... но там тогда получаетса очень много условий для выборки, и именно посиму я хочу это все дело разделить... сначала поставить фильтр по дате, причем по двум столбцам, а потом уже SQLем делать выборку...
а фильтрация реализована, покрайне мере свойство Filtered, Filter у FIBDataSet есть... от только почему то не работает...
еще предложения...
Вы хотите ставить фильтр после того как увидели выборку? очень странное дело...
-
Джентельмен
- постоялец
- Сообщения: 162
- Зарегистрирован: 16.10.2005 10:47:26
- Откуда: Украина Донбасс Краматорск
- Контактная информация:
Джентельмен писал(а):И еще проблемка...
мне нуно...
к FIBDataSet установить фильтр, и выбрать записи только за указаный период...
я делаю так:
FIBDataSet1.Filtered := 'True';
FIBDataSet1.Filter := 'DATA_S>18.06.83 and DATA_V<18.06.85';
компилирует, все хорошо...
но на этот фильтр не обращает внимания, и выводит все записи...
кто дурак?
на сколько я понял "18.06.83" это дата, тогда надо её в опостров
FIBDataSet1.Filter := 'DATA_S>''18.06.83'' and DATA_V<''18.06.85''';
я вообще то не советовал бы пользоваться фильтром, когда можно это через SQL сделать.
- debi12345
- долгожитель
- Сообщения: 5761
- Зарегистрирован: 10.05.2006 23:41:15
- Откуда: Ташкент (Узбекистан)
Джентельмен писал(а):я это все понимаю.... что SQL надо использовать... но там тогда получаетса очень много условий для выборки, и именно посиму я хочу это все дело разделить... сначала поставить фильтр по дате, причем по двум столбцам, а потом уже SQLем делать выборку...
а фильтрация реализована, покрайне мере свойство Filtered, Filter у FIBDataSet есть... от только почему то не работает...
еще предложения...
На крайняк проще ввести и использовать параметры запроса.
-------------
query.sql.add('select * from table1 where cond1 =
query.params.parambyname('PARAM1').asinteger:= 1;
query.active:= true;
-------------
и далее менять значение параметров и делать презапросы.
