Я часто использую запросы определений в своей повседневной жизни в ГИС, но одна из многих вещей, которые меня раздражают в ArcMap, - это невозможность комментировать запросы определений. Я хотел бы иметь эту опцию, так как иногда я хочу включить / выключить запрос определения, или я хочу иметь несколько запросов на один шейп-файл, но только один активный одновременно.
Пока что, чтобы обойти это, у меня обычно есть документ блокнота на заднем плане и копируй и вставляй по мере необходимости. Но идеальным решением было бы использовать вкладку запроса определения в свойствах слоя для замены этого документа. У меня может быть несколько разных запросов на слое, но все закомментированы.
Как я понимаю, запросы определения написаны на SQL. Чтобы комментировать в SQL, я полагаю, что вы либо начинаете строку с: -, либо заключаете оператор в скобки: {} . Я пробовал оба из них:
Original: "DATA_AQUISITION" LIKE 'MISSING XSECTION'
Dashes: --"DATA_AQUISITION" LIKE 'MISSING XSECTION'
Brackets: {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}
Последние два оператора возвращают ошибку выражения SQL и не рисуют в ArcMap. Я не ищу программного решения, так как это будет слишком много работы.
источник
"OBJECTID" <> -1 OR "DATA_AQUISITION" LIKE 'MISSING XSECTION'
это отличное решение, но я ищу что-то, что больше похоже на реальный комментарий. Что-то, что можно сделать на любом языке кода, где у вас есть несколько вариантов запросов в разных строках, и все, кроме одного, закомментированы. Если это невозможно, пусть будет так, но я считаю, что это был бы отличный вариант.Ответы:
Просто предположение, но причина, по которой это комментируется, не работает, вероятно, потому, что запрос определения - это просто часть предложения WHERE в более крупном операторе SQL, построенном внутри ArcGIS всякий раз, когда ему нужно выполнить запрос к базовой базе данных, например, чтобы нарисовать слой , Когда вы добавляете символы комментария, ArcGIS по-прежнему добавляет предложение WHERE и основные проблемы с БД, потому что это недопустимый SQL.
В диалоговом окне Query Builder есть кнопки загрузки и сохранения. При сохранении создается файл .exp, который можно затем загрузить обратно с помощью кнопки «Загрузить». Это на несколько кликов больше, чем вы, вероятно, ищете, но это что-то.
источник
SELECT * FROM table WHERE
недопустимый SQL - это то, что я получаю. После ключевого слова WHERE должно быть что-то, или ключевое слово WHERE вообще не должно быть. ArcGIS, вероятно, добавляет WHERE, если что-то вообще есть в запросе определения.SELECT * FROM table WHERE "OBJECTID" <> -1 --"DATA_AQUISITION" LIKE 'MISSING XSECTION'
иSELECT * FROM table WHERE "OBJECTID" <> -1 {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}
оба приводят к тем же ошибкам У этого есть кое-что послеWHERE
, но все еще не может обработать комментарии.1 = 1 /*"DATA_AQUISITION" LIKE 'MISSING XSECTION'*/
. Работал у меня на Oracle.1 = 1
Часть необходима, используя только комментарий не работает (Missing ошибки Expression).Комментарий блока / .. /, кажется, работает, пока у вас есть что-то в вашем запросе определения. Если вы все закомментировали, вам нужно поставить 1 = 1 перед вашими закомментированными строками
Примеры:
Все закомментировано:
1 без комментариев, 2 с комментариями:
2 без комментариев, 1 с комментариями:
Просто переместите «/ » и « /» вокруг.
источник
XTools Pro, не-ESRI дополнение имеет функцию, которая позволяет включать / отключать определение запроса на слое. Очень полезный.
Вы также можете скопировать / вставить свой запрос определения во вкладку «Основные» свойств слоя. Там есть окно для «Описание», которое часто не используется. Я часто копирую / вставляю свои запросы определений туда, когда мне нужно их отключить. Там сохранены в документе
источник