<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>Hola, me ha surgido una duda sobre los pasos a seguir para importar un DBF a PostgreSQL. Antes ten&iacute;a una carpeta con 4 ficheros:</p>
<p>- DBF</p>
<p>- PRJ</p>
<p>- SHP</p>
<p>- SHX</p>
<p>Y cuando quer&iacute;as importarlos a una tabla a PostgreSQL, con cargar el SHP (intuyo que gvSIG carga el resto autom&aacute;ticamente) llegaba. El problema es que ahora tengo una carpeta que s&oacute;lo tiene:</p>
<p>- DBF</p>
<p>- PRJ</p>
<p>La duda que tengo es c&oacute;mo obtengo el FeatureSet. Para el caso de los ficheros SHP, en el c&oacute;digo estaba puesto:<br /><br />DataManager manager = DALLocator.getDataManager();<br />DataParameters params = manager.createStoreParameters("Shape");</p>
<p>File fichero = new File(path);<br />params.setDynValue("shpfile",fichero);</p>
<p>IProjection srs = CRSFactory.getCRS(EPSG25829);<br />params.setDynValue("CRS", srs);</p>
<p>DataStore store = manager.createStore((DataStoreParameters) params);</p>
<p>FLayer capa = (FLyrVect) LayerFactory.getInstance().createLayer(fichero.getName(), store);</p>
<p>Y despu&eacute;s se usaba un <em>((FLyrVect) capa).getFeatureStore()</em>. Entonces, para el caso del DBF, he cambiado de la siguiente forma:</p>
<p>DataManager manager = DALLocator.getDataManager();<br />DataParameters params = manager.createStoreParameters("DBF");</p>
<p>File fichero = new File(path);<br />params.setDynValue("dbffile",fichero);</p>
<p>//Aqu&iacute; no se necesita el CRS</p>
<p>DataStore store = manager.createStore((DataStoreParameters) params);</p>
<p>Pero ahora no s&eacute; c&oacute;mo obtener el FeatureSet para crear la tabla en PostgreSQL, ya que si uso el FLayer del SHP obtengo el error:</p>
<p>org.gvsig.fmap.mapcontext.exceptions.LoadLayerException: Can't load the layer DATOS.dbf.<br /> at org.gvsig.fmap.mapcontext.layers.LayerFactory.createLayer(LayerFactory.java:190)<br />............<br />Caused by: java.lang.IllegalArgumentException: The layer don't has a geometry column.<br /> at org.gvsig.fmap.mapcontext.impl.DefaultMapContextManager.getLegend(DefaultMapContextManager.java:616)<br /> at org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.bindToDataStore(FLyrVect.java:193)<br /> at org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect.setDataStore(FLyrVect.java:172)<br /> at org.gvsig.fmap.mapcontext.layers.LayerFactory.createLayer(LayerFactory.java:182)<br /> ... 4 more</p>
<p>Que tiene sentido ya que en esta ocasi&oacute;n no dispongo de datos geom&eacute;tricos. He intentado buscar un ejemplo de c&oacute;mo procesar un DBF pero no he encontrado nada, en la documentaci&oacute;n he visto un ejemplo pero es para crear un fichero DBF (<a href="http://docs.gvsig.org/plone/projects/gvsig-desktop/docs/devel/org.gvsig.fmap.dal/2.0.0/featurestore/consumer-services/creacion-de-un-nuevo-almacen" target="_blank">Documentacion</a>), no importalo a PostgreSQL.<br /><br />&iquest;C&oacute;mo se procesa correctamente un fichero DBF o d&oacute;nde puedo ver un ejemplo para guiarme?</p>
<p>Saludos.</p>
</body></html>