gvSIG bugs #4792

Spatialite create table fails

Added by Cesar Martinez Izquierdo over 6 years ago. Updated about 6 years ago.

Status:Closed% Done:

0%

Priority:HighSpent time:-
Assignee:Joaquín del Cerro Murciano
Category:-
Target version:2.4.0-2847 (rev. org.gvsig.desktop-2.0.216)
Severity:Major Add-on version:
gvSIG version:2.4.0 Add-on build:
gvSIG build: Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch: Hito:
Add-on name:Unknown

Description

Exporting a layer to Spatialite format fails. The reason is that Spatialite create table fails

esp_provincias-4326.zip (579 KB) Joaquín del Cerro Murciano, 01/19/2018 09:00 PM


Related issues

Related to Application: gvSIG desktop - gvSIG bugs #4795: Se crean mas conexiones de las necesarias al exportar a S... Closed 01/20/2018

Associated revisions

Revision 131
Added by Joaquín del Cerro Murciano over 6 years ago

refs #4792. Corregido la creacion de la setencia sql para invocar a AddGeometryColumn. La cadena de formateo esperaba el srs como un entero y estaba recibiendo un string

Revision 132
Added by Joaquín del Cerro Murciano over 6 years ago

refs #4792. Añadido que cree las tablas de metadatos tras cargar la extension de spatialite.

Revision 43732
Added by Joaquín del Cerro Murciano over 6 years ago

refs #4792, añadida traza en el setStatementParameters para mostrar los parametros de las sql que se ejecutan,

Revision 43733
Added by Joaquín del Cerro Murciano over 6 years ago

refs #4792, añadida traza en el setStatementParameters para mostrar los parametros de las sql que se ejecutan,

Revision 43734
Added by Joaquín del Cerro Murciano over 6 years ago

refs #4792, modificado en el SRSSolverBase la sentencia sql para obtener el codigo srs de forma que sea compatible con SpatiaLite, H2 y PostGIS.

Revision 133
Added by Joaquín del Cerro Murciano over 6 years ago

refs #4792, Modificado el SpatiaLiteHelper para que use el SRSSolverBase (usa la tabla spatial_ref_sys) y revertidos los cambios de r131

Revision 134
Added by Cesar Martinez Izquierdo over 6 years ago

Adapt SQLBuilder and Helper to Spatialite dialect. Fixes: #4792

Revision 135
Added by Cesar Martinez Izquierdo over 6 years ago

Use integer srid value for AddGeometryColumn (partially reverting previous commit). Fixes: #4792

Revision 136
Added by Cesar Martinez Izquierdo over 6 years ago

Call InitSpatialMetaData every time a data source is created. Fixes #4792

History

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

  • Severity changed from Minor to Major
  • Priority changed from Normal to High

Despues de la correccion de gvsig-sqlite:r131 al intentar exportar muestra el siguiente error por la consola:

 INFO 107064 [Thread-9] (DefaultJExporttoServicePanel.java:291) - Exporting 'esp_provincias-4326' using 'org.gvsig.exportto.swing.prov.jdbc.ExporrtoJDBCService' (/home/jjdelcerro/datos/geodata/vector/shp2d/esp_provincias/esp_provincias-4326.shp).
DEBUG 107070 [Thread-9] (SpatiaLiteHelper.java:85) - connectionURL: jdbc:sqlite:/home/jjdelcerro/datos/geodata/db/sqlite/test3.sqlite
DEBUG 107074 [Thread-9] (AbstractConnectionOperation.java:58) - preparing execution of CreateTableOperation.
DEBUG 107076 [Thread-9] (SpatiaLiteHelper.java:187) - getConnection: connection = 779416571
DEBUG 107076 [Thread-9] (AbstractConnectionOperation.java:69) - Excuting operation CreateTableOperation.
DEBUG 107083 [Thread-9] (SpatiaLiteHelper.java:187) - getConnection: connection = 730169616
DEBUG 107089 [Thread-9] (JDBCUtils.java:32) - execute SQL: CREATE TABLE "esp_provincias_4326" ("objectid" INTEGER DEFAULT '0' NOT NULL, "area" REAL DEFAULT '0.0' NOT NULL, "perimeter" REAL DEFAULT '0.0' NOT NULL, "p20099_" INTEGER DEFAULT '0' NOT NULL, "p20099_id" INTEGER DEFAULT '0' NOT NULL, "nombre99" TEXT DEFAULT '' NOT NULL, "shape_leng" REAL DEFAULT '0.0' NOT NULL, "shape_area" REAL DEFAULT '0.0' NOT NULL, "prov" TEXT DEFAULT '' NOT NULL, "com" TEXT DEFAULT '' NOT NULL, "dprov" TEXT DEFAULT '' NOT NULL, "pk" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL )
DEBUG 107089 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT AddGeometryColumn("esp_provincias_4326" , "geometry" , 4326 , 'MULTIPOLYGON', 'XY', 1)
AddGeometryColumn() error: unexpected metadata layout
DEBUG 107289 [Thread-9] (JDBCHelperBase.java:214) - Clossing connection 779416571
DEBUG 107292 [Thread-9] (AbstractConnectionOperation.java:58) - preparing execution of SpatiaLiteFetchFeatureTypeOperation.
DEBUG 107294 [Thread-9] (SpatiaLiteHelper.java:187) - getConnection: connection = 21819513
DEBUG 107294 [Thread-9] (AbstractConnectionOperation.java:69) - Excuting operation SpatiaLiteFetchFeatureTypeOperation.
DEBUG 107313 [Thread-9] (JDBCUtils.java:26) - execute query SQL: SELECT * FROM "esp_provincias_4326" LIMIT 1
DEBUG 107318 [Thread-9] (JDBCHelperBase.java:214) - Clossing connection 21819513
 WARN 107320 [Thread-9] (ExporrtoJDBCService.java:406) - Can't export data.
java.lang.IllegalArgumentException: Attribute 'GEOMETRY' not found.
        at org.gvsig.fmap.dal.feature.impl.DefaultEditableFeatureType.setDefaultGeometryAttributeName(DefaultEditableFeatureType.java:303)
        at org.gvsig.fmap.dal.store.jdbc2.spi.JDBCStoreProviderBase.initializeFeatureType(JDBCStoreProviderBase.java:477)
        at org.gvsig.fmap.dal.store.jdbc2.spi.JDBCStoreProviderBase.<init>(JDBCStoreProviderBase.java:209)
        at org.gvsig.fmap.dal.store.jdbc2.spi.JDBCHelperBase.createProvider(JDBCHelperBase.java:353)
        at org.gvsig.spatialite.dal.SpatiaLiteStoreProviderFactory.createProvider(SpatiaLiteStoreProviderFactory.java:31)
        at org.gvsig.spatialite.dal.SpatiaLiteStoreProviderFactory.createProvider(SpatiaLiteStoreProviderFactory.java:14)
        at org.gvsig.fmap.dal.spi.AbstractDataStoreProviderFactory.create(AbstractDataStoreProviderFactory.java:48)
        at org.gvsig.fmap.dal.impl.DefaultDataManager.openStore(DefaultDataManager.java:443)
        at org.gvsig.fmap.dal.serverexplorer.db.spi.AbstractDBServerExplorer.open(AbstractDBServerExplorer.java:89)
        at org.gvsig.fmap.dal.store.jdbc2.spi.JDBCServerExplorerBase.open(JDBCServerExplorerBase.java:130)
        at org.gvsig.exportto.swing.prov.jdbc.ExporrtoJDBCService.export(ExporrtoJDBCService.java:243)
        at org.gvsig.exportto.swing.impl.DefaultJExporttoServicePanel$Export.run(DefaultJExporttoServicePanel.java:293)
 WARN 107322 [Thread-9] (DefaultJExporttoServicePanel.java:295) - Problems exporting the data (layer=esp_provincias-4326).
org.gvsig.exportto.ExporttoServiceException: An error has been produced exporting a store
        at org.gvsig.exportto.swing.prov.jdbc.ExporrtoJDBCService.export(ExporrtoJDBCService.java:408)
        at org.gvsig.exportto.swing.impl.DefaultJExporttoServicePanel$Export.run(DefaultJExporttoServicePanel.java:293)
Caused by: java.lang.IllegalArgumentException: Attribute 'GEOMETRY' not found.
        at org.gvsig.fmap.dal.feature.impl.DefaultEditableFeatureType.setDefaultGeometryAttributeName(DefaultEditableFeatureType.java:303)
        at org.gvsig.fmap.dal.store.jdbc2.spi.JDBCStoreProviderBase.initializeFeatureType(JDBCStoreProviderBase.java:477)
        at org.gvsig.fmap.dal.store.jdbc2.spi.JDBCStoreProviderBase.<init>(JDBCStoreProviderBase.java:209)
        at org.gvsig.fmap.dal.store.jdbc2.spi.JDBCHelperBase.createProvider(JDBCHelperBase.java:353)
        at org.gvsig.spatialite.dal.SpatiaLiteStoreProviderFactory.createProvider(SpatiaLiteStoreProviderFactory.java:31)
        at org.gvsig.spatialite.dal.SpatiaLiteStoreProviderFactory.createProvider(SpatiaLiteStoreProviderFactory.java:14)
        at org.gvsig.fmap.dal.spi.AbstractDataStoreProviderFactory.create(AbstractDataStoreProviderFactory.java:48)
        at org.gvsig.fmap.dal.impl.DefaultDataManager.openStore(DefaultDataManager.java:443)
        at org.gvsig.fmap.dal.serverexplorer.db.spi.AbstractDBServerExplorer.open(AbstractDBServerExplorer.java:89)
        at org.gvsig.fmap.dal.store.jdbc2.spi.JDBCServerExplorerBase.open(JDBCServerExplorerBase.java:130)
        at org.gvsig.exportto.swing.prov.jdbc.ExporrtoJDBCService.export(ExporrtoJDBCService.java:243)
        ... 1 more
 INFO 107323 [Thread-9] (Messages.java:753) - [org.gvsig.i18n.Messages] Cannot find translation for key '_There_have_been_problems_exporting_data'.
 INFO 107339 [Thread-9] (Messages.java:753) - [org.gvsig.i18n.Messages] Cannot find translation for key '_Problem'.
 INFO 107339 [Thread-9] (Messages.java:753) - [org.gvsig.i18n.Messages] Cannot find translation for key '_Accept'.

Parece que el error se debe a:

DEBUG 107089 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT AddGeometryColumn("esp_provincias_4326" , "geometry" , 4326 , 'MULTIPOLYGON', 'XY', 1)
AddGeometryColumn() error: unexpected metadata layout

Al parecer no puede crear el campo "geometry" y luego, cuando intenta usarlo falla.

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

He añadido que tras llamar al load_extension ejecute un InitSpatialMetaData(1) (gvsig-sqlite:r132) y entonces parece que ya no da ese error al crear la tabla.
Aunque falla mas adelante al intentar insertar la primera fila.

Sobre el InitSpatialMetaData(1):

Parece que la primera vez que se ejecuta crea las tablas, y luego cada vez que se ejecuta las encuentra ya creadas y muestra un mensage:

> DEBUG 48221 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT InitSpatialMetaData(1)
> InitSpatiaMetaData() error:"table spatial_ref_sys already exists" 
> 

Pero no parece que tenga mas relevancia que eso.

El mensaje que muestra en la consola es:

DEBUG 35596 [Export] (AbstractConnectionOperation.java:58) - preparing execution of ListTablesOperation.
DEBUG 35685 [Export] (JDBCUtils.java:32) - execute SQL: SELECT load_extension('mod_spatialite')
DEBUG 35690 [Export] (JDBCUtils.java:32) - execute SQL: SELECT InitSpatialMetaData(1)
DEBUG 36278 [Export] (SpatiaLiteHelper.java:200) - getConnection: connection = 692943805
DEBUG 36279 [Export] (AbstractConnectionOperation.java:69) - Excuting operation ListTablesOperation.
DEBUG 36283 [Export] (JDBCHelperBase.java:214) - Clossing connection 692943805
 INFO 36305 [AWT-EventQueue-0] (Messages.java:753) - [org.gvsig.i18n.Messages] Cannot find translation for key 'Ha_utilizado_espacios_en_blanco_o_mayusculas_en_el_nombre_de_la_tabla_Desea_que_se_corrija_de_forma_automatica'.
 INFO 36307 [AWT-EventQueue-0] (AbstractLocator.java:70) - Created and stored the instance of Tools.swing.threadsafedialogs in the singleton table (org.gvsig.tools.swing.impl.threadsafedialogs.DefaultThreadSafeDialogsManager/org.gvsig.tools.swing.impl.threadsafedialogs.DefaultThreadSafeDialogsManager@45ba684).
 INFO 36308 [AWT-EventQueue-0] (Messages.java:753) - [org.gvsig.i18n.Messages] Cannot find translation for key '_Warning'.
 INFO 36309 [AWT-EventQueue-0] (AbstractLocator.java:70) - Created and stored the instance of DialogReminderManager in the singleton table (org.gvsig.tools.swing.impl.dialogreminder.DefaultDialogReminderManager/org.gvsig.tools.swing.impl.dialogreminder.DefaultDialogReminderManager@46efcbff).
 INFO 48214 [Thread-9] (DefaultJExporttoServicePanel.java:291) - Exporting 'esp_provincias-4326' using 'org.gvsig.exportto.swing.prov.jdbc.ExporrtoJDBCService' (/home/jjdelcerro/datos/geodata/vector/shp2d/esp_provincias/esp_provincias-4326.shp).
DEBUG 48219 [Thread-9] (AbstractConnectionOperation.java:58) - preparing execution of CreateTableOperation.
DEBUG 48220 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT load_extension('mod_spatialite')
DEBUG 48221 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT InitSpatialMetaData(1)
InitSpatiaMetaData() error:"table spatial_ref_sys already exists" 
DEBUG 48222 [Thread-9] (SpatiaLiteHelper.java:200) - getConnection: connection = 1687057709
DEBUG 48223 [Thread-9] (AbstractConnectionOperation.java:69) - Excuting operation CreateTableOperation.
DEBUG 48227 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT load_extension('mod_spatialite')
DEBUG 48228 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT InitSpatialMetaData(1)
InitSpatiaMetaData() error:"table spatial_ref_sys already exists" 
DEBUG 48229 [Thread-9] (SpatiaLiteHelper.java:200) - getConnection: connection = 96645192
DEBUG 48233 [Thread-9] (JDBCUtils.java:32) - execute SQL: CREATE TABLE "esp_provincias_4326" ("objectid" INTEGER DEFAULT '0' NOT NULL, "area" REAL DEFAULT '0.0' NOT NULL, "perimeter" REAL DEFAULT '0.0' NOT NULL, "p20099_" INTEGER DEFAULT '0' NOT NULL, "p20099_id" INTEGER DEFAULT '0' NOT NULL, "nombre99" TEXT DEFAULT '' NOT NULL, "shape_leng" REAL DEFAULT '0.0' NOT NULL, "shape_area" REAL DEFAULT '0.0' NOT NULL, "prov" TEXT DEFAULT '' NOT NULL, "com" TEXT DEFAULT '' NOT NULL, "dprov" TEXT DEFAULT '' NOT NULL, "pk" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL )
DEBUG 48233 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT AddGeometryColumn("esp_provincias_4326" , "geometry" , 4326 , 'MULTIPOLYGON', 'XY', 1)
DEBUG 48462 [Thread-9] (JDBCHelperBase.java:214) - Clossing connection 1687057709
DEBUG 48465 [Thread-9] (AbstractConnectionOperation.java:58) - preparing execution of SpatiaLiteFetchFeatureTypeOperation.
DEBUG 48465 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT load_extension('mod_spatialite')
DEBUG 48466 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT InitSpatialMetaData(1)
InitSpatiaMetaData() error:"table spatial_ref_sys already exists" 
DEBUG 48467 [Thread-9] (SpatiaLiteHelper.java:200) - getConnection: connection = 470915535
DEBUG 48468 [Thread-9] (AbstractConnectionOperation.java:69) - Excuting operation SpatiaLiteFetchFeatureTypeOperation.
DEBUG 48496 [Thread-9] (JDBCUtils.java:26) - execute query SQL: SELECT * FROM "esp_provincias_4326" LIMIT 1
DEBUG 48503 [Thread-9] (JDBCUtils.java:26) - execute query SQL: SELECT "geometry_type", "coord_dimension", "srid", "spatial_index_enabled" FROM "geometry_columns" WHERE ( ("f_table_name") = ('esp_provincias_4326') ) AND ( ("f_geometry_column") = ('geometry') )
DEBUG 48504 [Thread-9] (JDBCUtils.java:26) - execute query SQL: select srid, auth_name, auth_srid from spatial_ref_sys where srid = 4326
DEBUG 48506 [Thread-9] (JDBCHelperBase.java:214) - Clossing connection 470915535
DEBUG 48507 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT load_extension('mod_spatialite')
DEBUG 48508 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT InitSpatialMetaData(1)
InitSpatiaMetaData() error:"table spatial_ref_sys already exists" 
DEBUG 48508 [Thread-9] (SpatiaLiteHelper.java:200) - getConnection: connection = 470915535
DEBUG 48615 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT load_extension('mod_spatialite')
DEBUG 48616 [Thread-9] (JDBCUtils.java:32) - execute SQL: SELECT InitSpatialMetaData(1)
InitSpatiaMetaData() error:"table spatial_ref_sys already exists" 
DEBUG 48619 [Thread-9] (SpatiaLiteHelper.java:200) - getConnection: connection = 1533354950
DEBUG 48624 [Thread-9] (JDBCUtils.java:54) - execute update SQL: INSERT INTO "esp_provincias_4326" ( "objectid", "area", "perimeter", "p20099_", "p20099_id", "nombre99", "shape_leng", "shape_area", "prov", "com", "dprov", "geometry" ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ST_GeomFromWKB((?), (?)) )
 WARN 48629 [Thread-9] (ExporrtoJDBCService.java:406) - Can't export data.
org.gvsig.fmap.dal.feature.exception.StoreInsertFeatureException: Can't insert feature in store 'esp_provincias_4326s'.
        at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.insert(DefaultFeatureStore.java:1260)
        at org.gvsig.exportto.swing.prov.jdbc.ExporrtoJDBCService.export(ExporrtoJDBCService.java:352)
        at org.gvsig.exportto.swing.impl.DefaultJExporttoServicePanel$Export.run(DefaultJExporttoServicePanel.java:293)
Caused by: java.lang.RuntimeException: Can't insert feature.
        at org.gvsig.fmap.dal.store.jdbc2.spi.operations.AppendOperation.append(AppendOperation.java:125)
        at org.gvsig.fmap.dal.store.jdbc2.spi.JDBCStoreProviderBase.append(JDBCStoreProviderBase.java:583)
        at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.insert(DefaultFeatureStore.java:1247)
        ... 2 more
Caused by: org.sqlite.SQLiteException: [SQLITE_CONSTRAINT_NOTNULL]  A NOT NULL constraint failed (NOT NULL constraint failed: esp_provincias_4326.geometry)
        at org.sqlite.core.DB.newSQLException(DB.java:909)
        at org.sqlite.core.DB.newSQLException(DB.java:921)
        at org.sqlite.core.DB.execute(DB.java:825)
        at org.sqlite.core.DB.executeUpdate(DB.java:863)
        at org.sqlite.jdbc3.JDBC3PreparedStatement.executeUpdate(JDBC3PreparedStatement.java:99)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
        at org.gvsig.fmap.dal.store.jdbc2.JDBCUtils.executeUpdate(JDBCUtils.java:55)
        at org.gvsig.fmap.dal.store.jdbc2.spi.operations.AppendOperation.append(AppendOperation.java:123)
        ... 4 more
DEBUG 48634 [Thread-9] (JDBCHelperBase.java:214) - Clossing connection 470915535
 WARN 48638 [Thread-9] (DefaultJExporttoServicePanel.java:295) - Problems exporting the data (layer=esp_provincias-4326).
org.gvsig.exportto.ExporttoServiceException: An error has been produced exporting a store
        at org.gvsig.exportto.swing.prov.jdbc.ExporrtoJDBCService.export(ExporrtoJDBCService.java:408)
        at org.gvsig.exportto.swing.impl.DefaultJExporttoServicePanel$Export.run(DefaultJExporttoServicePanel.java:293)
Caused by: org.gvsig.fmap.dal.feature.exception.StoreInsertFeatureException: Can't insert feature in store 'esp_provincias_4326s'.
        at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.insert(DefaultFeatureStore.java:1260)
        at org.gvsig.exportto.swing.prov.jdbc.ExporrtoJDBCService.export(ExporrtoJDBCService.java:352)
        ... 1 more
Caused by: java.lang.RuntimeException: Can't insert feature.
        at org.gvsig.fmap.dal.store.jdbc2.spi.operations.AppendOperation.append(AppendOperation.java:125)
        at org.gvsig.fmap.dal.store.jdbc2.spi.JDBCStoreProviderBase.append(JDBCStoreProviderBase.java:583)
        at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.insert(DefaultFeatureStore.java:1247)
        ... 2 more
Caused by: org.sqlite.SQLiteException: [SQLITE_CONSTRAINT_NOTNULL]  A NOT NULL constraint failed (NOT NULL constraint failed: esp_provincias_4326.geometry)
        at org.sqlite.core.DB.newSQLException(DB.java:909)
        at org.sqlite.core.DB.newSQLException(DB.java:921)
        at org.sqlite.core.DB.execute(DB.java:825)
        at org.sqlite.core.DB.executeUpdate(DB.java:863)
        at org.sqlite.jdbc3.JDBC3PreparedStatement.executeUpdate(JDBC3PreparedStatement.java:99)
        at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)
        at org.gvsig.fmap.dal.store.jdbc2.JDBCUtils.executeUpdate(JDBCUtils.java:55)
        at org.gvsig.fmap.dal.store.jdbc2.spi.operations.AppendOperation.append(AppendOperation.java:123)
        ... 4 more
 INFO 48642 [Thread-9] (Messages.java:753) - [org.gvsig.i18n.Messages] Cannot find translation for key '_There_have_been_problems_exporting_data'.
 INFO 48660 [Thread-9] (Messages.java:753) - [org.gvsig.i18n.Messages] Cannot find translation for key '_Problem'.
 INFO 48663 [Thread-9] (AbstractLocator.java:70) - Created and stored the instance of FeatureTypeDefinitionsManager in the singleton table (org.gvsig.app.extension.DefaultFeatureTypeDefinitionsManager/org.gvsig.app.extension.DefaultFeatureTypeDefinitionsManager@4f938a42).
 INFO 48675 [Thread-9] (Messages.java:753) - [org.gvsig.i18n.Messages] Cannot find translation for key '_Row_values'.
 WARN 48723 [Thread-9] (DefaultJDynForm.java:280) - Can't retrieve form field asociated to the field 'pk' of class 'esp_provincias_4326'.
 INFO 48723 [Thread-9] (Messages.java:753) - [org.gvsig.i18n.Messages] Cannot find translation for key '_Accept'.

Parece que se queje que estamos intentando insertar una linea con la geometria a null; pero la tabla que estoy usando no parece que tenga geometrias a null.
Adjunto la tabla con la que estoy probando.

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

  • Target version changed from 2.4.0-2850-final (rev. org.gvsig.desktop-2.0.220) to 2.4.0-2847 (rev. org.gvsig.desktop-2.0.216)
  • Assignee changed from Cesar Martinez Izquierdo to Joaquín del Cerro Murciano
  • Status changed from New to Fixed

Vale, al final todo estaba relacionado con el SRS.
Cuando trataba de hacer el insert:

INSERT INTO "esp_provincias_4326" ( "objectid", "area", "perimeter", 
  "p20099_", "p20099_id", "nombre99", "shape_leng", "shape_area", 
  "prov", "com", "dprov", "geometry" ) VALUES ( 
    ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ST_GeomFromWKB((?), (?)) 
  )

A la funcion ST_GeomFromWKB se le pasaba como segundo parametro el SRS como un string
en lugar de como un entero. Fallaba con un mensaje:

[SQLITE_CONSTRAINT_NOTNULL]  A NOT NULL constraint failed (NOT NULL constraint failed: esp_provincias_4326.geometry)

Que daba pocas pistas sobre que estaba pasando.
Ademas no se estaba utilizando la tabla "spatial_ref_sys" para convertir
los SRS de la aplicacion a los de la BBDD.

Con los cambios hechos hasta la revision 133/43734 ya no falla al exportar un shape a SpatiaLite; pero
habria que repasar la clase AppendOperation ya que parece que se estan creando mas conexiones a la BBDD de las necesarias, y seguramente se resienta mucho la exportacion cuando las tablas sean grandes.

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

  • Related to gvSIG bugs #4795: Se crean mas conexiones de las necesarias al exportar a SpatiaLite added

#6 Updated by Álvaro Anguix about 6 years ago

  • Status changed from Fixed to Closed

Also available in: Atom PDF