Коментування запитів визначення на робочому столі ArcGIS?


10

Я дуже часто використовую Запити до визначення у своєму щоденному житті ГІС, але однією з багатьох речей, які мені здаються дратівливими щодо ArcMap, є неможливість коментувати Запити на визначення. Я хотів би мати цю опцію, оскільки іноді я хочу ввімкнути / вимкнути Запит на визначення або я хочу мати кілька запитів на одному Shapefile, але одночасно лише один активний.

Поки, щоб обійти це, зазвичай я просто маю документ із блокнотом на задньому плані та копіюю та вставляю за необхідності. Але ідеальним рішенням буде використання вкладки запиту на визначення властивостей шару для заміни цього документа. Я можу мати кілька різних запитів на шарі, але всі коментуються.

Як я розумію, запити до визначення записуються в SQL. Для коментування в SQL, я вважаю, що ви або починаєте рядок з: - або включаєте оператор у дужках: {} . Я спробував обидва:

Original: "DATA_AQUISITION" LIKE 'MISSING XSECTION'
Dashes:   --"DATA_AQUISITION" LIKE 'MISSING XSECTION'
Brackets: {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}

Останні два твердження повертають помилку вираження SQL і не малюють у ArcMap. Я не шукаю програмного рішення, оскільки це було б занадто багато роботи.


2
У мене немає системи ArcGIS для перевірки, але чи працює щось на зразок "АБО 1 = 1" чи, можливо, навіть ObjectID> -1?
Devdatta Tengshe

@DevdattaTengshe, який працює занадто сильно, коментує запит: "OBJECTID" <> -1 OR "DATA_AQUISITION" LIKE 'MISSING XSECTION'Це чудове рішення, але я шукаю щось, що здається більше схожим на фактичний коментар. Що можна зробити на кожній мові коду, де у вас є кілька варіантів запитів у різних рядках, і всі, крім одного, коментуються. Якщо це неможливо, так і буде, але я вважаю, що це було б чудовим варіантом.
Коді Браун

Відповіді:


6

Лише здогадка, але причина коментування цього не працює, ймовірно, тому, що запит на визначення є лише частиною пункту WHERE у більшій операційній програмі SQL, побудованій внутрішньо ArcGIS, коли йому потрібно запитувати базову базу даних, наприклад, щоб намалювати шар . Коли ви додаєте символи коментарів, ArcGIS все ще додає пункт WHERE і базу даних, що лежать в основі БД, оскільки це недійсний SQL.

У діалоговому вікні Builder Query є кнопки завантаження та збереження. Зберегти створює .exp файл, який ви можете потім завантажити назад за допомогою кнопки Завантажити. Це на кілька кліків більше, ніж ви, мабуть, шукаєте, але це щось.


Це правда, що це лише частина більшого твердження. Дуже можливо, що БД вироджується, коли ми додаємо коментар, але я знаю, що це можливо в інших програмах, які використовують SQL, щоб додати коментар посеред заяви. Збереження та завантаження .exp - це те, що я використовував раніше, але, як ви сказали, це на кілька кліків більше, ніж я шукаю. Я також намагаюся зменшити кількість коду та файлів, прикріплених до кожного MXD, який у мене є, і це замість цього збільшить його.
Коді Браун

2
SELECT * FROM table WHEREне вірно SQL - це те, що я отримував. За ключовим словом WHERE повинно бути щось, або ключове слово WHERE взагалі не повинно бути там. ArcGIS, ймовірно, додає ДЕ, якщо взагалі є щось у запиті на визначення.
blah238

Я намагався, SELECT * FROM table WHERE "OBJECTID" <> -1 --"DATA_AQUISITION" LIKE 'MISSING XSECTION'і SELECT * FROM table WHERE "OBJECTID" <> -1 {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}обидва призводять до однакових помилок. У ньому є щось, що слідує за WHERE, але все ще не вдається обробити коментарі.
Коді Браун

1
Ага. Ну незалежно від причини, явно підхід коментування не буде працювати.
blah238

4
Насправді, синтаксис коментування у стилі C виглядає так, що він працює. Спробуйте це, наприклад: 1 = 1 /*"DATA_AQUISITION" LIKE 'MISSING XSECTION'*/. Працював для мене на Oracle. 1 = 1Частина необхідна, використовуючи тільки коментар не працює (Missing помилки Expression).
bla22

4

Коментар блоку / .. /, здається, працює до тих пір, поки у запиті на визначення є щось. Якщо ви все прокоментуєте, перед коментованими рядками потрібно поставити 1 = 1

Приклади:

Усі коментували:

1=1  
/*  
  and ASSIGNMENT_STATUS <> 'Closed' 
  and DEVICE_TYPE = 'device'     
  and ASSIGNED_TO = 'somebody'    
*/

1 коментар, 2 коментарі:

ASSIGNMENT_STATUS <> 'Closed' 
/* 
  and DEVICE_TYPE = 'device'     
  and ASSIGNED_TO = 'somebody'    
*/

2 коментарі, 1 коментар:

ASSIGNMENT_STATUS <> 'Closed' 
DEVICE_TYPE = 'device'
/*      
  and ASSIGNED_TO = 'somebody'    
*/

Просто перемістіть "/ " і " /" навколо.


1

XTools pro, не-ESRI надбудова, має функцію, яка дозволяє вмикати / вимикати querry визначення на шарі. Дуже корисний.

Ви також можете скопіювати / вставити запит на визначення на вкладці властивостей шару "Загальні". Там є вікно для "Опис", яке часто не використовується. Я часто копіюю / вставляю свої запити на визначення, коли мені потрібно вимкнути їх. Там зберігаються в документі


Хм звучить добре, але чи коштує XTools гроші чи це приємна безкоштовна добавка?
Коді Браун
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.