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

Вниз

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

Наверх




Память: 0.48 MB
Время: 0.045 c
15-1170142422
savva
2007-01-30 10:33
2007.03.04
Лицензии на софт MS для образовательных учреждений.


2-1171113891
так себе
2007-02-10 16:24
2007.03.04
Перерисовка StatusBar


2-1171613987
reqty
2007-02-16 11:19
2007.03.04
Доступ на запись


6-1159423149
fishka
2006-09-28 09:59
2007.03.04
Пользователь для IdTelnet?


2-1171519985
Xuch
2007-02-15 09:13
2007.03.04
Написание процедуры на кнопку





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский