Utilizo mucho las consultas de definición en mi vida diaria en el SIG, pero una de las muchas cosas que he encontrado molestas sobre ArcMap es la incapacidad de comentar las consultas de definición. Me gustaría tener esta opción, ya que a veces quiero activar / desactivar la consulta de definición o quiero tener múltiples consultas en un solo archivo de forma, pero solo una activa a la vez.
Hasta ahora, para evitar esto, generalmente solo tengo un documento de bloc de notas en segundo plano y copio y pego según sea necesario. Pero la solución ideal sería utilizar la pestaña de consulta de definición en las propiedades de la capa para reemplazar este documento. Es posible que tenga varias consultas diferentes en una capa, pero todas comentaron.
Según tengo entendido, las consultas de definición están escritas en SQL. Para comentar en SQL, creo que comienza una línea con: - o abarca una declaración entre paréntesis: {} . He intentado ambos:
Original: "DATA_AQUISITION" LIKE 'MISSING XSECTION'
Dashes: --"DATA_AQUISITION" LIKE 'MISSING XSECTION'
Brackets: {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}
Las dos últimas declaraciones devuelven un error de expresión SQL y no se dibujarán en ArcMap. No estoy buscando una solución de programación, ya que eso sería demasiado trabajo.
fuente
"OBJECTID" <> -1 OR "DATA_AQUISITION" LIKE 'MISSING XSECTION'
Esa es una gran solución, pero estoy buscando algo que parezca más un comentario real. Algo que se puede hacer en todos los lenguajes de código, donde tiene múltiples opciones de consulta en diferentes líneas y todas menos una están comentadas. Si no es posible, que así sea, pero creo que sería una gran opción.Respuestas:
Solo una suposición, pero la razón por la cual comentarlo no funciona probablemente se deba a que una consulta de definición es solo la cláusula WHERE que forma parte de una declaración SQL más grande construida internamente por ArcGIS cada vez que necesita consultar la base de datos subyacente, por ejemplo, para dibujar la capa . Cuando agrega los caracteres de comentario, ArcGIS todavía agrega la cláusula WHERE y los monstruos de base de datos subyacentes porque no es SQL válido.
En el cuadro de diálogo Generador de consultas hay botones de carga y guardar. Guardar crea un archivo .exp que luego puede volver a cargar con el botón Cargar. Son unos pocos clics más de lo que probablemente esté buscando, pero es algo.
fuente
SELECT * FROM table WHERE
no es válido SQL es lo que estaba buscando. Tiene que haber algo después de la palabra clave WHERE, o la palabra clave WHERE no debe estar allí en absoluto. ArcGIS probablemente agrega DONDE si hay algo en absoluto en la Consulta de definición.SELECT * FROM table WHERE "OBJECTID" <> -1 --"DATA_AQUISITION" LIKE 'MISSING XSECTION'
ySELECT * FROM table WHERE "OBJECTID" <> -1 {"DATA_AQUISITION" LIKE 'MISSING XSECTION'}
Ambos resultan en los mismos errores. Tiene algo que sigue alWHERE
, pero aún no puede manejar los comentarios.1 = 1 /*"DATA_AQUISITION" LIKE 'MISSING XSECTION'*/
. Trabajó para mí en Oracle. La1 = 1
parte es necesaria, usar solo el comentario no funciona (error de expresión faltante).El comentario de bloque / .. / parece funcionar siempre que tenga algo en su consulta de definición. Si comenta todo, debe poner un 1 = 1 antes de las líneas comentadas
Ejemplos:
Todos comentaron:
1 no comentado, 2 comentado:
2 no comentados, 1 comentado:
Simplemente mueva "/ " y " /" alrededor.
fuente
XTools pro, un complemento que no es ESRI tiene una característica que permite activar / desactivar una consulta de definición en una capa. Muy útil.
También puede copiar / pegar su consulta de definición en la pestaña "General" de propiedades de capa. Hay una ventana para "Descripción" que a menudo no se usa. A menudo copio / pego mis consultas de definición allí cuando necesito desactivarlas. Se guardan en el documento
fuente