gvSIG bugs #2492

Error al componer expresión de filtrado

Added by José Vicente Higón about 10 years ago. Updated about 5 years ago.

Status:Outdated% Done:

0%

Priority:NormalSpent time:-
Assignee:-
Category:Document table
Target version:-
Severity:Minor Add-on version:
gvSIG version:2.1.0 Add-on build:
gvSIG build:2223 Add-on resolve version:
Operative System:Linux Add-on resolve build:
Keywords: Proyecto:
Has patch:No Hito:
Add-on name:Unknown

Description

Al crear un filtro aparece el siguiente error:

Quizás el problema sea debido a que el nombre de la columna tiene espacios en blanco.
En el log no aparece ninguna excepción

error_filtro.png (53 KB) José Vicente Higón, 04/14/2014 02:16 PM

error_filtro_2.png (33.7 KB) José Vicente Higón, 04/14/2014 02:20 PM

832
833

Related issues

Related to Application: gvSIG desktop - gvSIG bugs #4660: Selección por atributo no funciona con campos con nombre ... Outdated 09/12/2017
Related to Application: gvSIG desktop - gvSIG bugs #4708: Selector by attribute doesn't work when we double-click o... Closed 10/14/2017

History

#1 Updated by José Vicente Higón about 10 years ago

El error también aparece al crear una leyenda con categorías

#2 Updated by Joaquín del Cerro Murciano about 10 years ago

Bueno, pues hay varios problemas relacionados con este error, todos
relacionados con el soporte de espacios en blanco en los identificadores
de atributos de una feature.

Por un lado cuando se genera la expresion haciendo doble click en el campo
que contiene un blanco, este se añade a la caja de texto sin mas. Lo
suyo es que se escapase el blanco de alguna manera, por ejemplo
metiendo el identificados entre comillas dobles como se hace en SQL.
Al no hacer nada e intentar parsear la cadena, esta es sintacticamente
incorrecta, de ahi el error que muestra.

Bien, pues voy y a mano pongo el identificador entre dobles comillas en
la caja de la expresion. Entonces se queja la libreria que estamos usando
para evaluar las expresiones (SQLJEP), ya que esta no soporta blancos en los
identificadores. De echo es un error, ya que en teoria deberia soportar
la sintaxis para expresiones de un where de sql, que indica que los
identificadores pueden ir entre comillas dobles.

Aunque el primer problema se puede salvar facilmente, que genere correctamenente
los identificadores entre comillas dobles cuando tengan espacios en blanco,
el segundo problema es mas dificil de solventar, ya que la libreria SQLJEP
ya no esta mantenida (las ultimas correcciones fueron ya nuestras).

gvSIG usa un interfaz Evaluator para evaluar las expresiones y tiene una
implementacion de ese interface usando la libreria de SQLJEP, de forma que
gvSIG no es dependiente del API de SQLJEP. Yo propondria
implementar otro evaluador en base a otra libreria y probar
a ver si tiene memos bugs. He estado echando un vistazo y la libreria ZQL,
que ya estamos usando en algun otro sitio de gvSIG para parsear SQLs,
tiene la capacidad de evaluar expresiones SQL (ZEval y ZTuple) y
en un primer vistazo no parece complicado integrarla con nuestro interface
de Evaluator. No he visto como esta el tema de definir funciones pero no
creo que se lo hayan dejado.

#3 Updated by Álvaro Anguix over 9 years ago

  • Category set to Document table

#4 Updated by Joaquín del Cerro Murciano over 6 years ago

  • Related to gvSIG bugs #4660: Selección por atributo no funciona con campos con nombre "numérico" added

#5 Updated by Joaquín del Cerro Murciano over 6 years ago

  • Related to gvSIG bugs #4708: Selector by attribute doesn't work when we double-click on the name of the field added

#6 Updated by Álvaro Anguix about 5 years ago

  • Status changed from New to Outdated

Se ha cambiado la herramienta de selección por atributos, por lo que lo paso a outdated

Also available in: Atom PDF