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

Вниз

фильтрация в DBGridEh через STFilter - работает неадекватно   Найти похожие ветки 

 
alex_*** ©   (2007-01-11 12:20) [0]

STFilter.Local := false;

в SQL прописал
where /*FILTER*/  (1=1)  - работает.

то же самое прописал в соседнем query - не работает.
Проверил настройки гридов - одинаковые.
Перенес первый грид с query в тестовый проект - не работает.

Чего-то я не догоняю от чего зависит работоспособность STFilter


 
Reindeer Moss Eater ©   (2007-01-11 12:23) [1]

Чего-то я не догоняю от чего зависит работоспособность STFilter

От специализированных потомков класса TDBFeatures.


 
alex_*** ©   (2007-01-11 12:25) [2]

типа шутка юмора?
распечатываю SQL.Text на BeforeOpen. В первом случае нормально подставляется условие отбора, в других набор даже не переотрывается


 
Reindeer Moss Eater ©   (2007-01-11 12:45) [3]

типа шутка юмора?

Кому как.


 
Reindeer Moss Eater ©   (2007-01-11 12:49) [4]

procedure TDBGridEhDataService.DefaultApplyFilter(AGrid: TCustomDBGridEh);
var
 DatasetFeatures: TDatasetFeaturesEh;
begin
 if (AGrid.DataSource <> nil) and (AGrid.DataSource.DataSet <> nil) then
 begin
   DatasetFeatures := GetDatasetFeaturesForDataSet(AGrid.DataSource.DataSet);
   if DatasetFeatures <> nil then
     DatasetFeatures.ApplyFilter(AGrid, AGrid.DataSource.DataSet, True);
 end;
end;


 
alex_*** ©   (2007-01-11 13:07) [5]

спасибо, конечно, за науку, но ведь тип query у меня один и тот же и TDatasetFeaturesEh д.б. постоянный.


 
Reindeer Moss Eater ©   (2007-01-11 13:39) [6]

Ну может в uses второго проекта не включен модуль, в котором реализованы фичи для BDE датасетов. Или текст запроса так составлен, что парсер не может понять куда where лепить.


 
alex_*** ©   (2007-01-11 14:07) [7]

кто здесь говорил про БДЕ? ADOQuery.

кроме DBGridEh никаких модулей из EhLib не подключено ни в 1 , ни во 2 проекте


 
alex_*** ©   (2007-01-11 14:08) [8]

вобщем сам буду фильтр составлять, надоели эти фичи или глюки


 
Reindeer Moss Eater ©   (2007-01-11 14:14) [9]

кто здесь говорил про БДЕ? ADOQuery.

А кто должен был говорить про то, какие у него датасеты?

кроме DBGridEh никаких модулей из EhLib не подключено ни в 1 , ни во 2 проекте

Оптический обман. Если в юзез ни в одном модуле нет EhLibADO.Pas, то фильтрация не будет работать вообще нигде.

надоели эти фичи или глюки

Слова не мальчика, но мужа.


 
alex_*** ©   (2007-01-11 14:34) [10]


> Если в юзез ни в одном модуле нет EhLibADO.Pas, то фильтрация
> не будет работать вообще нигде

тем не менее, как-то она работает без него


 
Reindeer Moss Eater ©   (2007-01-11 14:45) [11]

unit EhLibADO;
.....

initialization
 RegisterDatasetFeaturesEh(TADOSQLDatasetFeaturesEh, TADOQuery);
 RegisterDatasetFeaturesEh(TADOCommandTextDatasetFeaturesEh, TCustomADODataSet);
end.

Без выполненного кода в initialization не будет работать. надеюсь с этим спорить не будем? Просто модуль EhLibADO уже включен в пакет EhLibХ0.dpk


 
alex_*** ©   (2007-01-11 14:46) [12]

явно в uses он у меня не прописан и как-то работает


 
Reindeer Moss Eater ©   (2007-01-11 14:58) [13]

package EhLib70;
.....
 EhLibVCL in "EhLibVCL.pas",
 EhLibIBX in "..\DataService\EhLibIBX.pas",
 EhLibADO in "..\DataService\EhLibADO.Pas";
end.


 
alex_*** ©   (2007-01-11 15:13) [14]

все это понятно.
Все оказалось просто до отвратительного:
строка  "/*FILTER*/  (1=1)"  должна идти с новой строки с первой позиции без пробелов:
"  /*FILTER*/  (1=1)" - не работает.

Вот блин, кто бы мог подумать. На удаление пробела потратил полдня :(
Хотя надо было мануал внимательнее читать:


So your SQL query have to have a line that begining from "/*Filter*/"


 
alex_*** ©   (2007-01-11 15:17) [15]

работает даже с TADODataSet что радует.


 
Reindeer Moss Eater ©   (2007-01-11 15:33) [16]

Reindeer Moss Eater ©   (11.01.07 13:39) [6]
Ну может в uses второго проекта не включен модуль, в котором реализованы фичи для BDE датасетов. Или текст запроса так составлен, что парсер не может понять куда where лепить.


 
alex_*** ©   (2007-01-11 15:38) [17]


> Или текст запроса так составлен, что парсер не может понять
> куда where лепить.

ну это абстрактные размышления. Все равно спасибо - остановил меня во время доводки своей реализации фильтра на ApplyFilter



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

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

Наверх




Память: 0.51 MB
Время: 0.042 c
15-1171056753
vasIZmax
2007-02-10 00:32
2007.03.04
Глюк?! или ...


15-1170761496
Glivera
2007-02-06 14:31
2007.03.04
Опять лицензирование Windows XP


15-1170817081
SerJaNT
2007-02-07 05:58
2007.03.04
Вот, рюмку нарисовал..


2-1171545721
Vlad Oshin
2007-02-15 16:22
2007.03.04
Опять о cgi.. Можно ли в нем использовать ADO? как?


3-1165229321
Ольга
2006-12-04 13:48
2007.03.04
Координаты сетки DBGrid