![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
фильтрация в DBGridEh через STFilter - работает неадекватно [D7]
alex_*** © (2007-01-11 12:20:00)STFilter.Local := false;
в SQL прописал
where /*FILTER*/ (1=1) - работает.
то же самое прописал в соседнем query - не работает.
Проверил настройки гридов - одинаковые.
Перенес первый грид с query в тестовый проект - не работает.
Чего-то я не догоняю от чего зависит работоспособность STFilter
alex_*** (2007-01-11 15:38:00) [1]
> Или текст запроса так составлен, что парсер не может понять
> куда where лепить.
ну это абстрактные размышления. Все равно спасибо - остановил меня во время доводки своей реализации фильтра на ApplyFilter
Reindeer Moss Eater (2007-01-11 15:33:00) [2]Reindeer Moss Eater © (11.01.07 13:39) [6]
Ну может в uses второго проекта не включен модуль, в котором реализованы фичи для BDE датасетов. Или текст запроса так составлен, что парсер не может понять куда where лепить.
alex_*** (2007-01-11 15:17:00) [3]работает даже с TADODataSet что радует.
alex_*** (2007-01-11 15:13:00) [4]все это понятно.
Все оказалось просто до отвратительного:
строка '/*FILTER*/ (1=1)' должна идти с новой строки с первой позиции без пробелов:
' /*FILTER*/ (1=1)' - не работает.
Вот блин, кто бы мог подумать. На удаление пробела потратил полдня :(
Хотя надо было мануал внимательнее читать:
So your SQL query have to have a line that begining from '/*Filter*/'
Reindeer Moss Eater (2007-01-11 14:58:00) [5]package EhLib70;
.....
EhLibVCL in 'EhLibVCL.pas',
EhLibIBX in '..\DataService\EhLibIBX.pas',
EhLibADO in '..\DataService\EhLibADO.Pas';
end.
alex_*** (2007-01-11 14:46:00) [6]явно в uses он у меня не прописан и как-то работает
Reindeer Moss Eater (2007-01-11 14:45:00) [7]unit EhLibADO;
.....
initialization
RegisterDatasetFeaturesEh(TADOSQLDatasetFeaturesEh, TADOQuery);
RegisterDatasetFeaturesEh(TADOCommandTextDatasetFeaturesEh, TCustomADODataSet);
end.
Без выполненного кода в initialization не будет работать. надеюсь с этим спорить не будем? Просто модуль EhLibADO уже включен в пакет EhLibХ0.dpk
alex_*** (2007-01-11 14:34:00) [8]
> Если в юзез ни в одном модуле нет EhLibADO.Pas, то фильтрация
> не будет работать вообще нигде
тем не менее, как-то она работает без него
Reindeer Moss Eater (2007-01-11 14:14:00) [9]кто здесь говорил про БДЕ? ADOQuery.
А кто должен был говорить про то, какие у него датасеты?
кроме DBGridEh никаких модулей из EhLib не подключено ни в 1 , ни во 2 проекте
Оптический обман. Если в юзез ни в одном модуле нет EhLibADO.Pas, то фильтрация не будет работать вообще нигде.
надоели эти фичи или глюки
Слова не мальчика, но мужа.
alex_*** (2007-01-11 14:08:00) [10]вобщем сам буду фильтр составлять, надоели эти фичи или глюки
alex_*** (2007-01-11 14:07:00) [11]кто здесь говорил про БДЕ? ADOQuery.
кроме DBGridEh никаких модулей из EhLib не подключено ни в 1 , ни во 2 проекте
Reindeer Moss Eater (2007-01-11 13:39:00) [12]Ну может в uses второго проекта не включен модуль, в котором реализованы фичи для BDE датасетов. Или текст запроса так составлен, что парсер не может понять куда where лепить.
alex_*** (2007-01-11 13:07:00) [13]спасибо, конечно, за науку, но ведь тип query у меня один и тот же и TDatasetFeaturesEh д.б. постоянный.
Reindeer Moss Eater (2007-01-11 12:49:00) [14]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;
Reindeer Moss Eater (2007-01-11 12:45:00) [15]типа шутка юмора?
Кому как.
alex_*** (2007-01-11 12:25:00) [16]типа шутка юмора?
распечатываю SQL.Text на BeforeOpen. В первом случае нормально подставляется условие отбора, в других набор даже не переотрывается
Reindeer Moss Eater (2007-01-11 12:23:00) [17]Чего-то я не догоняю от чего зависит работоспособность STFilter
От специализированных потомков класса TDBFeatures.