Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите как обойти глюк в фильтрации... [D6, MSSQL]


Страницы:   1 2

Andrey__ ©   (2003-05-22 11:13:00) 

Подскажите как обойти глюк в фильтрации...

Есть компонент TADOQuery
устанавливаю свойство
Filter := "((Cod_UU = 13) and (God = 2003)) OR
((Cod_UU = 15) and (God = 2003))"; - все работает

устанавливаю свойство
Filter := "((Cod_UU = 13) OR (Cod_UU = 15)) and
(God = 2003)"; - ошибка при попытке установить свойство Filtered := True;

подскажите, что не так...


andrey__   (2003-05-22 13:20:00) [21]

<а почему бы сразу запрос соответсвующим образом не строить>-дело в том, что данные всего запроса мне нужны, так как на клиенте такие расчеты, что иначе прийдется создавать слишком много запросов на сервер(для каждого условия), что будет намного дольше.

<onFilterRecord там попроще...> -

да следующее у меня выполняется

procedure TfmTabShag.qrSel30FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
begin
Accept:= ((DataSet["Cod_UU"]=13) or (DataSet["Cod_UU"]=15)) and
(DataSet["God"]=2003);
end;

но у меня переменное количество условий объудиненых "OR" ((DataSet["Cod_UU"]=13) or (DataSet["Cod_UU"]=15 or ...) и "AND" и предусмотреть все варианты не возможно заранее. А в Filter строку всегда можно изменить.


Соловьев   (2003-05-22 11:51:00) [22]


> andrey__ (22.05.03 11:42)

onFilterRecord там попроще...


Term   (2003-05-22 11:46:00) [23]

а почему бы сразу запрос соответсвующим образом не строить


andrey__   (2003-05-22 11:42:00) [24]

Дело в том, что я написал упрощенный вариант. На самом деле у меня будет больше "OR" и "AND".


Stas   (2003-05-22 11:32:00) [25]

А чем тебя неустраевает это ((Cod_UU = 13) and (God = 2003)) OR
((Cod_UU = 15) and (God = 2003))"?


andrey__   (2003-05-22 11:30:00) [26]

делал и так - не помогло!


Term   (2003-05-22 11:27:00) [27]

попробуй всё взять в еще одни общие скобки т.е.
Filter := "(((Cod_UU = 13) OR (Cod_UU = 15)) and
(God = 2003))";


Andrey__   (2003-05-22 11:23:00) [28]

текст ошибки:
Arguments are of the wrong type, are out of acceptable range, or are in conflict with one another.


Term   (2003-05-22 11:19:00) [29]

текст ошибки приведи


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо