[Gvsig_desarrolladores] Consultas SQL sobre DBF
Francisco Puga
fpuga en cartolab.es
Mar Abr 12 13:53:28 CEST 2011
Hola,
disculpad el mensaje anterior, me había obcecado.
Gracias a Nacho Varela llego a la solución.
Me faltaba el result.start() / stop.
Pego el código actualizado por si le vale a alguien.
SelectableDataSource comunidad = Utils.getFlyrVect(view,
"comunidad").getRecordset();
String sql = "select * from " + comunidad.getName() + ";";
comunidad.start();
DataSource result = comunidad.getDataSourceFactory().executeSQL( sql,
DataSourceFactory.MANUAL_OPENING);
result.start(); // FALTABA
for (int i = 0; i < result.getRowCount(); i++) {
for (int j = 0; j < result.getFieldCount(); j++) {
Value a = result.getFieldValue(i, j);
System.out.println(a.toString());
}
}
result.stop(); // FALTABA
comunidad.stop();
El día 12 de abril de 2011 13:30, Francisco Puga <fpuga en cartolab.es> escribió:
> hola,
>
> Estoy tratando de hacer una consulta con un código como este:
>
> SelectableDataSource comunidad = Utils.getFlyrVect(view,
> "comunidad").getRecordset(); // comunidad es un recordset válido
> String sql = "select * from " + comunidad.getName() + ";" ;
> comunidad.start();
> DataSource result = comunidad.getDataSourceFactory().executeSQL(sql,
> DataSourceFactory.MANUAL_OPENING);
> comunidad.stop();
> for (int i = 0; i < result.getRowCount(); i++) {
> for (int j = 0; j < result.getFieldCount(); j++) {
> Value a = result.getFieldValue(i, j);
> }
> }
>
>
> Pero al ejecutarlo salta una excepción de este tipo:
>
> java.lang.NullPointerException
> at com.iver.cit.gvsig.fmap.drivers.dbf.DbaseFile.getStringFieldValue(DbaseFile.java:243)
> at com.iver.cit.gvsig.fmap.drivers.dbf.DBFDriver.getFieldValue(DBFDriver.java:168)
> at com.hardcode.gdbms.engine.data.file.FileDataSourceAdapter.getFieldValue(FileDataSourceAdapter.java:156)
> at com.hardcode.gdbms.engine.strategies.PDataSource.getFieldValue(PDataSource.java:119)
> at com.hardcode.gdbms.engine.strategies.FilteredDataSource.getFieldValue(FilteredDataSource.java:136)
> at com.hardcode.gdbms.engine.data.DataSourceCommonImpl.getAsString(DataSourceCommonImpl.java:54)
> at es.udc.cartolab.gvsig.pmf.queries.SelectQueryDialog$Query1.doIt(SelectQueryDialog.java:43)
> at es.udc.cartolab.gvsig.pmf.queries.SelectQueryDialog.actionPerformed(SelectQueryDialog.java:80)
>
> Adjunto el shape. ¿Alguien sabe por donde pueden ir los tiros?
Más información sobre la lista de distribución gvSIG_desarrolladores