Comentando as consultas de definição no ArcGIS Desktop?


10

Uso muito as Consultas de definição em minha vida diária no GIS, mas uma das muitas coisas que achei irritantes sobre o ArcMap é a incapacidade de comentar as Consultas de definição. Eu gostaria de ter essa opção, pois às vezes eu quero ativar / desativar a Consulta de Definição ou quero ter várias Consultas em um único Shapefile, mas apenas uma ativa por vez.

Até agora, para contornar isso, normalmente só tenho um documento em bloco de notas em segundo plano e copio e colo conforme necessário. Mas a solução ideal seria usar a guia de consulta de definição nas propriedades da camada para substituir este documento. Eu posso ter várias consultas diferentes em uma camada, mas todas comentadas.

Pelo que entendi, as consultas de definição são escritas em SQL. Para comentar no SQL, acredito que você inicia uma linha com: - ou engloba uma instrução entre colchetes: {} . Eu tentei os dois:

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

As duas últimas instruções retornam um erro de expressão SQL e não desenham no ArcMap. Não estou procurando uma solução de programação, pois isso seria muito trabalho.


2
Não tenho ArcGIS neste sistema para fazer check-out, mas algo como 'OR 1 = 1' ou talvez até ObjectID> -1 funcione?
Devdatta Tengshe

@DevdattaTengshe que funciona muito bem comenta uma consulta: "OBJECTID" <> -1 OR "DATA_AQUISITION" LIKE 'MISSING XSECTION'Essa é uma ótima solução, mas estou procurando por algo que pareça mais um comentário real. Algo que pode ser feito em todos os idiomas do código, onde você tem várias opções de consulta em linhas diferentes e todas, exceto uma, são comentadas. Se não for possível, que assim seja, mas acredito que seria uma ótima opção.
Cody Brown

Respostas:


6

Apenas um palpite, mas a razão pela qual o comentário não funciona é provavelmente porque uma consulta de definição é apenas a parte da cláusula WHERE de uma instrução SQL maior construída internamente pelo ArcGIS sempre que precisar consultar o banco de dados subjacente, por exemplo, para desenhar a camada . Quando você adiciona os caracteres de comentário, o ArcGIS ainda adiciona a cláusula WHERE e os malucos do banco de dados subjacentes porque não é um SQL válido.

Na caixa de diálogo Query Builder, existem botões para carregar e salvar. Salvar cria um arquivo .exp que você pode carregar novamente com o botão Carregar. São mais alguns cliques do que você provavelmente está procurando, mas é algo.


É verdade que é apenas parte de uma declaração maior. É muito possível que o banco de dados fique louco quando adicionamos um comentário, mas sei que é possível em outros programas que usam SQL adicionar um comentário no meio de uma instrução. Salvar e carregar um .exp é algo que eu estava usando antes, mas, como você disse, são apenas alguns cliques a mais do que estou procurando. Também estou tentando reduzir a quantidade de código e arquivos anexados a cada MXD que eu tenho e isso aumentaria.
Cody Brown

2
SELECT * FROM table WHEREnão é válido SQL é o que eu estava chegando. Tem que haver algo após a palavra-chave WHERE, ou a palavra-chave WHERE precisa não estar lá. O ArcGIS provavelmente adiciona WHERE se houver alguma coisa na Consulta de Definição.
precisa saber é

Eu tentei SELECT * FROM table WHERE "OBJECTID" <> -1 --"DATA_AQUISITION" LIKE 'MISSING XSECTION'e SELECT * FROM table WHERE "OBJECTID" <> -1 {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}ambos resultam nos mesmos erros. Tem algo seguindo o WHERE, mas ainda não pode lidar com os comentários.
Cody Brown

1
Hã. Bem, seja qual for o motivo, claramente a abordagem de comentários não funcionará.
precisa saber é o seguinte

4
Na verdade, a sintaxe de comentários no estilo C parece que funciona. Tente isso por exemplo: 1 = 1 /*"DATA_AQUISITION" LIKE 'MISSING XSECTION'*/. Trabalhou para mim no Oracle. A 1 = 1peça é necessária, usar apenas o comentário não funciona (erro de Expressão ausente).
precisa saber é

4

O comentário do bloco / .. / parece funcionar desde que você tenha algo em sua consulta de definição. Se você comentar tudo, precisará colocar 1 = 1 antes das linhas comentadas

Exemplos:

Todos comentaram:

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

1 não comentado, 2 comentado:

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

2 não comentados, 1 comentou:

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

Basta mover o "/ " e " /".


1

XTools pro, um complemento não ESRI possui um recurso que permite ativar / desativar uma consulta de definição em uma camada. Muito útil.

Você também pode copiar / colar sua consulta de definição na guia "Geral" das propriedades da camada. Existe uma janela para "Descrição" que geralmente não é usada. Costumo copiar / colar minhas consultas de definição quando preciso desativá-las. Existem salvos no documento


Hmm parece bom, mas o XTools custa dinheiro ou é um bom complemento gratuito?
Cody Brown
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.