gvSIG bugs #729

Error en tratamiento de campos Primary Key clave al crear capa GeoDB

Added by Ildefonso Junquero almost 12 years ago. Updated over 11 years ago.

Status:Closed% Done:

0%

Priority:NormalSpent time:-
Assignee:Juan Lucas Domínguez
Category:Database
Target version:2.0.0-devel-2050
Severity: Add-on version:
gvSIG version:2.0.0 Add-on build:
gvSIG build: Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch:No Hito:
Add-on name:Unknown

Description

Cuando se crea una nueva capa de tipo GeoDB, hay que introducir alguna información básica:

El nombre de la capa para la geometría, el nombre que se dará a la tabla a crear, y las columnas que tendrá la tabla.
Para definir las columnas, hay que indicar:
El nombre
El tipo de dato, con su longitud, y si es de tipo GEOMETRY, el tipo de geometría, el tipo de coordenadas, y el CRS.
Si permite valores null.
Si es clave primaria.

El ser clave primaria es un dato importante, puesto que es el mecanismo por el que se identificarán de forma única las filas, y se usará para su edición.
También es importante el dato de si la columna admite valores null (las claves primarias no deben admitir null).

Pues bien, los datos de si es clave primaria o si admite valores null, no son almacenados en el FeatureAttributeDescriptor, es decir, que aunque ponga que una columna es clave primaria, el método isPrimaryKey, siempre devuelve false.

Esto hace que en la llamada al método getSqlFieldDescription de JDBCHelper, la sentencia de creación de la tabla no cree las claves primarias y además permita valores null.

Como consecuencia, una tabla con geometrías no se puede editar en gvSIG, puesto que éste necesita que las tablas tengan clave primaria para identificar a las geometrías en edición.

Estoy desarrollando un driver para JASPA, y la forma en la que puedo solucionarlo ahora mismo sin tocar código es sobrecargando el método getSqlFieldDescription y hacer que si la columna es la primera (index=0) y además el nombre contiene la cadena mayúsculas "ID", considerarla clave primaria y por lo tanto, "not null".

History

#1 Updated by Manuel Madrid almost 12 years ago

  • Category set to Database
  • Target version set to 2.0.0-rc1

#2 Updated by Juan Lucas Domínguez almost 12 years ago

  • Assignee set to Juan Lucas Domínguez

#3 Updated by Juan Lucas Domínguez almost 12 years ago

  • Status changed from New to Fixed
  • Target version changed from 2.0.0-rc1 to 2.0.0-devel-2050

gvsig-desktop:r38560

Updated values in attribute descriptors and other small improvements.

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

  • Status changed from Fixed to Closed

Also available in: Atom PDF