gvSIG bugs #2492
Error al componer expresión de filtrado
Status: | Outdated | % Done: | 0% | |
---|---|---|---|---|
Priority: | Normal | Spent 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
Related issues
History
#1
Updated by José Vicente Higón over 10 years ago
- File error_filtro_2.png added
El error también aparece al crear una leyenda con categorías
#2
Updated by Joaquín del Cerro Murciano over 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 almost 7 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 almost 7 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 over 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