Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FDQuery.Filter / 7 сообщений из 7, страница 1 из 1
15.05.2020, 22:40
    #39958237
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FDQuery.Filter
Если к SQL-серверу послать запрос вида
Код: sql
1.
SELECT * FROM TABLE WHERE SomeField <> 0;

то он не вернёт записи, для которых SomeField IS NULL.

А вот если сделать
Код: pascal
1.
FDQuery.Filter := 'SomeField <> 0';

то он эти записи покажет.

Вопрос: можно ли как-то сделать, чтобы FDQuery.Filter работал так же как и WHERE?..
...
Рейтинг: 0 / 0
15.05.2020, 22:54
    #39958239
Dmitry Arefiev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FDQuery.Filter
Нельзя, все БД разные, а FD один и работает на клиенте. Ну или можно, но нужно ?
...
Рейтинг: 0 / 0
15.05.2020, 23:24
    #39958244
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FDQuery.Filter
Dmitry Arefiev
Нельзя, все БД разные, а FD один и работает на клиенте. Ну или можно, но нужно ?

Т.е. правило что результат сравнения null = 0 является null - это не стандарт SQL?..
...
Рейтинг: 0 / 0
15.05.2020, 23:39
    #39958248
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FDQuery.Filter
alekcvp,

А если прямо в строку фильтра и подписать желаемое?
...
Рейтинг: 0 / 0
16.05.2020, 00:19
    #39958260
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FDQuery.Filter
Vlad F
alekcvp,
А если прямо в строку фильтра и подписать желаемое?

В смысле? 'AND SomeField IS NOT NULL' что-ли?
Я просто хотел чтобы фильтр в компоненте и фильтр в запросе одинаково отрабатывали...
...
Рейтинг: 0 / 0
16.05.2020, 00:27
    #39958264
Vlad F
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FDQuery.Filter
alekcvp,

Но ты же уже понял, что движок сервера и движок локального фильтра имеют разную реализацию данного фукционала.
Не хочешь разбираться с дополнительными возможностями второго, окостыль прямо в запросе:
select coalesce(SomeField, 0) <....>.
...
Рейтинг: 0 / 0
16.05.2020, 22:55
    #39958480
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FDQuery.Filter
Vlad F
alekcvp,
Но ты же уже понял, что движок сервера и движок локального фильтра имеют разную реализацию данного фукционала.
Не хочешь разбираться с дополнительными возможностями второго, окостыль прямо в запросе:
select coalesce(SomeField, 0) <....>.
Coalesce влияет на вид возвращаемых данных, а это не правильно. На данный момент я решил просто к каждому условию для фильтра типа 'SomeField <> 0' принудительно дописывать ' AND SomeField IS NOT NULL', на результаты от SQL-сервера это всё равно не влияет, а фильтр в компоненте начинает работать как ожидается.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / FDQuery.Filter / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]