Advanced Search и пустые строки

Здесь нужно сообщать об ошибках в QGIS, с подробным описанием шагов и версии ПО.
Ответить
yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Advanced Search и пустые строки

Сообщение yellow-sky » 13 мар 2013, 09:47

QGIS 1.8, 1.9. Win
Задача: выбрать записи в слое, у которых определенный строчный атрибут (допустим "NAME") пустой (NULL).
Нерабочий вариант, который можно ввести с помощью формы:
NAME = ''
Нерабочий вариант, который можно предположить и ввести вручную:
NAME = NULL
Рабочий вариант, который можно ввести вручную, но никто кроме SQL программистов так не сделает:
NAME IS NULL

Форма не отображает NULL значение в списке ALL. Форма не имеет кнопки IS, и не понятно почему она должна быть, более логичный вариант "=", но он не работает.
Многих пользователей смущает, что синтаксис поиска отличается от синтаксиса Query builder, хотя форма одна и та же.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Advanced Search и пустые строки

Сообщение Максим Дубинин » 17 мар 2013, 09:58

Изображение
пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Advanced Search и пустые строки

Сообщение Максим Дубинин » 17 мар 2013, 18:14

пристегивайтесь, турбулентность прямо по курсу

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Advanced Search и пустые строки

Сообщение Максим Дубинин » 17 мар 2013, 21:07

в общем всё интересно, это не проблема апстрима и не проблема форм, а проблема ... спецификации самого SQL в которой действительно позволяется троичная логика (True, False, Unknown):
Comparisons with Null, for instance equality (=) in WHERE clauses, results in an Unknown truth value. In SELECT statements SQL returns only results for which the WHERE clause returns a value of True;
Advanced search использует QgsExpression (который видимо основан на хардкорном SQL), а Query Builder - провайдер, в данном случае диалект OGR SQL, который не так суров, но факт - другой.

Резюмируя, если я правильно все понял, придется привыкать.
пристегивайтесь, турбулентность прямо по курсу

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: Advanced Search и пустые строки

Сообщение yellow-sky » 01 апр 2013, 09:02

Стоп стоп стоп.
'Advanced search использует QgsExpression (который видимо основан на хардкорном SQL)' - если это действительно так, то и форма должна соответствовать этому. Сейчас выходит, что форма одна, а контекст у неё разный. И для одного случая (Query Builder) она хорошо подходит, а вот для поиска - подходит примерно. Если есть отличия в движках, то и формы нужно делать разные. ИМХО.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Advanced Search и пустые строки

Сообщение Максим Дубинин » 01 апр 2013, 10:48

В кугисе много что должно быть по другому, но пока - так, как есть. Я оттранслировал объяснение, а не решение.
пристегивайтесь, турбулентность прямо по курсу

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: Advanced Search и пустые строки

Сообщение yellow-sky » 01 апр 2013, 12:34

Да. Я прочитал ответ в трекере. К сожалению все подобные вещи реджектятся.

Аватара пользователя
Максим Дубинин
MindingMyOwnBusiness
Сообщения: 9128
Зарегистрирован: 06 окт 2003, 20:20
Репутация: 747
Ваше звание: NextGIS
Откуда: Москва
Контактная информация:

Re: Advanced Search и пустые строки

Сообщение Максим Дубинин » 01 апр 2013, 15:19

и правильно, не баг же.
пристегивайтесь, турбулентность прямо по курсу

yellow-sky
Гуру
Сообщения: 588
Зарегистрирован: 30 мар 2009, 21:53
Репутация: 55
Откуда: Королев

Re: Advanced Search и пустые строки

Сообщение yellow-sky » 01 апр 2013, 16:32

это неправильный дизайн функциональности.
именно из-за таких моментов говорят, что в кугис это сделать нельзя. хотя реально можно. нужно только обладать секретными данными

Ответить

Вернуться в «Ошибки QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей