[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