[Gvsig_desarrolladores] Problemas Acceso a Datos
Jorge Piera
piera_jor en gva.es
Mie Mayo 2 12:58:54 CEST 2007
Hola Jaime,
Te adjunto el mismo código de antes pero, incluyendo una línea donde
introduzco un filtro en SQL. Lo que obtengo es un array con los ídices
de las filas de la capa que hacen "matching" con la consulta SQL que he
introducido. Después accedo únicamente a las filas de la tabla
seleccionadas.
View vista =
(View)PluginServices.getMDIManager().getActiveWindow();
MapControl mapControl = vista.getMapControl();
MapContext mapContext = mapControl.getMapContext();
FLayer layerTolocate =
mapControl.getMapContext().getLayers().getLayer(0);
AlphanumericData capa = (AlphanumericData)layerTolocate;
try {
SelectableDataSource sds = capa.getRecordset();
String name = sds.getName();
//Obtenemos los índices de las filas
DataSource ds =
LayerFactory.getDataSourceFactory().executeSQL("select * from " + name +
" where layer=21;",
DataSourceFactory.MANUAL_OPENING);
long[] selectedIndex = ds.getWhereFilter();
for (int i=0 ; i<selectedIndex.length ; i++){
System.out.print("\n FILA " + selectedIndex[i] + " ");
for (int j=0 ; j<sds.getFieldCount() ; j++){
System.out.print(sds.getFieldName(j));
System.out.print(": ");
System.out.print(sds.getFieldValue(selectedIndex[i], j));
System.out.print(" ");
}
}
} catch (DriverException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (com.iver.cit.gvsig.fmap.DriverException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DriverLoadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SemanticException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (EvaluationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Un saludo
Otra solución sería que te crees un Data
Jaime Traver wrote:
> Hola Jorge:
>
> Como me has comentado funciona bien, ahora mi pregunta es se podría
> hacer con una consulta SQL, lo digo por que de esta forma seria mas
> fácil hacer la búsqueda en la tabla.
>
>
> Gracias.
> Saludos.
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>
--
Jorge Piera Llodrá
Especialista en Servicios OGC
Equipo de desarrollo gvSIG
IVER TI S.A.
C/ Salamanca, 50-52
46005-Valencia
Tlf.+34963163400
www.iver.es
www.gvsig.com
Más información sobre la lista de distribución gvSIG_desarrolladores