Показать сообщение отдельно
Старый 31.01.2003, 17:51   #5  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1850 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
Вот такой у меня executeQuery

select *
from Implementations
where
(Implementations.ProviderID==filter.ProviderId() || filter.ProviderId()=="") &&
(Implementations.ClientID==filter.ClientId() || filter.ClientId()=="") &&
(Implementations.InfSystemID==filter.InfSystemId() || filter.InfSystemId()=="") &&
(Implementations.StageID==filter.StageId() || filter.StageId()=="")
exists join is where Implementations.InfSystemID==is.SystemID && is.SystemTypeID==filter.infSystemTypeId() || filter.infSystemTypeId()==""
exists join is2 where Implementations.InfSystemID==is2.SystemID && is2.VendorID==filter.VendorId() || filter.VendorId()==""
exists join iss where Implementations.InfSystemID==iss.InfSystemID && iss.AutomationSubjectID==filter.InfSystemSubjectId() || filter.InfSystemSubjectId()==""
exists join im where Implementations.ImplementationID==im.ImplementationID && im.ModuleID==filter.ModuleId() || filter.ModuleId()==""
exists join ias where Implementations.ImplementationID==ias.ImplementationID && ias.AutomationSubjectID==filter.ImplementationSubjectId() || filter.ImplementationSubjectId()==""
exists join ca where Implementations.ClientID==ca.FirmID && filter.ClientActivityId()==ca.ActivityId || filter.ClientActivityId()==""
exists join pa where Implementations.ProviderID==pa.FirmID && filter.ProviderActivityId()==pa.ActivityId || filter.ProviderActivityId()==""

Выходит, что никаких ranges[] как бы и нет, хотя они в where очень даже подразумеваются. Мне это нравится тем, что уходит на сервер одним запросом, одно плохо - кнопка фильтра не отрисовывается. Мне бы сюда какой-нибудь фиктивный фильтр прикрутить - и было бы щастье