[Gvsig_desarrolladores] Re: Crear Tabla

Jaime Traver revartj en gmail.com
Jue Jul 12 19:54:58 CEST 2007


Hola, pues no se que me esta faltando, por que he hecho lo que me has
comentado, ya no me da el error pero sigue sin crearme la tabla con los
campos tal y como tu indicas, me debe estar faltando algo pero no se que es.
Te muestro otra vez el código, y haber si puedes comentarme que me puede
estar faltando. Lo que si me hace es crearme en el project table una
instancia del nombre de la misma tabla, es decir si en el project table
tengo Tabla.dbf me duplica el nombre y ya esta.

            String[] Campos=
{"Tipo_Via","Nombre","Numero","Sexo","CoorX","CoorY"};
            int [] fieldTypes={12,12,12,12,12,12};
            DBFDriver driver = new DBFDriver();
            String name = "Tabla";

            LayerFactory.getDataSourceFactory().createFileDataSource(
driver.getName(), name, "Archivo", Campos, fieldTypes);
            DataSource dataSource = null;
            DataSourceFactory dsf = new DataSourceFactory();
            dsf.createFileDataSource(driver.getName(), name, "MYTABLA.dbf",
Campos, fieldTypes);

            try {
                dataSource =
LayerFactory.getDataSourceFactory().createRandomDataSource(name,
DataSourceFactory.AUTOMATIC_OPENING);

            } catch (DriverLoadException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (NoSuchTableException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            dataSource.setDataSourceFactory(dsf);
            SelectableDataSource sds = new SelectableDataSource(dataSource);
            EditableAdapter auxea = new EditableAdapter();
            auxea.setOriginalDataSource(sds);


            ProjectTable projectTables = ProjectFactory.createTable(name,
                    auxea);

            ProjectExtension ext =
(ProjectExtension)PluginServices.getExtension(ProjectExtension.class);
            ext.getProject().addDocument(projectTable);

Eso es lo que tengo, haber si me podeis comentar que es lo que estoy
haciendo mal, ya que me has comentado Jorge, lo ha hecho asi y te funciona,
aver si me puedes indicar donde esta el fallo.

Un Saludo. Gracias


2007/7/12, Jorge Piera <jorge.piera en iver.es>:
>
> Hola.
>
> Es normal que te salte esa excepción, porque el objecto "dataSource" no
> ha sido inicializado. Justo donde has puesto el comentario diciendo que
> te salta esa excepción pon lo siguiente:
>
> dataSource =
> LayerFactory.getDataSourceFactory().createRandomDataSource(name,
>                                   DataSourceFactory.AUTOMATIC_OPENING);
>
> Lo he probado y funciona: Se crea una tabla vacía con los campos que has
> especificado.
>
> Un saludo.
>
> Jaime Traver wrote:
> > Hola de nuevo, como os he comentado mi intención era crear una tabla
> > nueva desde cero, entonces os comento, como creo que puede ser y ya me
> > indicáis si voy por el camino correcto:
> >
> >             String[] Campos=
> > {"fieldA","fieldB","fieldC","fieldD","fieldE","fieldF"};
> >             int [] fieldTypes={12,12,12,12,12,12};
> >             DBFDriver driver = new DBFDriver();
> >             String name = "Tabla";
> >
> >
> > LayerFactory.getDataSourceFactory().createFileDataSource(driver.getName
> (),
> > name, "Archivo", Campos, fieldTypes);
> >
> >             DataSource dataSource = null;
> >             DataSourceFactory dsf = new DataSourceFactory();
> >             dsf.createFileDataSource(driver.getName(), name, "jame",
> > Campos, fieldTypes);
> >
> >             Supongo, que aquí habrá que añadir las tuplas al
> > datasource, y no se como se haría exactamente. Aquí, tal como esta
> > salta una exception indicando java.lang.NullPointerException
> >
> >             dataSource.setDataSourceFactory(dsf);
> >             SelectableDataSource sds = new
> > SelectableDataSource(dataSource);
> >             EditableAdapter auxea = new EditableAdapter();
> >             auxea.setOriginalDataSource(sds);
> >
> >             Luego para agregar la tabla al proyecto seria así, como
> > comento Jorge Piera.
> >
> >             ProjectTable projectTables = ProjectFactory.createTable
> (name,
> >                     auxea);
> >
> >             ProjectExtension ext =
> > (ProjectExtension)PluginServices.getExtension(ProjectExtension.class );
> >             ext.getProject().addDocument(projectTable);
> >
> > Un Saludo
> >
> >
> > El día 10/07/07, *Vicente Caballero Navarro *
> > <vicente.caballero en iver.es <mailto:vicente.caballero en iver.es>> escribió:
> >
> >     Hola Jaime.
> >     Para cambiar la estructura de la tabla tendrás que introducir en el
> >     writer la descripción de la tabla con los datos necesarios de las
> >     columnas que quieres introducir:
> >     A partir de lo que ha comentado Jorge:
> >         A auxea le puedes ir introduciendo registros.
> >                     ies.addRow(row,"description",
> EditionEvent.ALPHANUMERIC);
> >
> >                       if (auxea instanceof IWriteable)
> >                      {
> >                          IWriteable w = (IWriteable) auxea;
> >                          IWriter writer = w.getWriter();
> >                          if (writer == null)
> >                          {
> >                              NotificationManager.addError ("No existe
> >     driver
> >     de escritura para la tabla"
> >                                      + getModel().getName(), new
> >     EditionException());
> >                          }
> >                          else
> >                          {
> >                              tableDef=new TableDefinition();
> >                              FieldDescription[] fieldDescriptions=new
> >     FieldDescription[3];
> >                              fieldDescriptions[0].setFieldName("name1");
> >                              fieldDescriptions[0].setFieldType(type);
> >                              ...
> >                              tableDef.setFieldsDesc(fieldDescriptions);
> >                              writer.initialize(tableDef);
> >
> >
> >     auxea.stopEdition(writer,EditionEvent.ALPHANUMERIC);
> >                         }
> >                      }
> >
> >     Jorge Piera escribió:
> >     > Hola Jaime.
> >     >       Para ver una tabla en gvSIG, tienes que crear un objeto de
> >     tipo
> >     > ProjectTable, asociarle una fuente de datos (desde un dbf en tu
> >     caso)
> >     > y añadirlo al proyecto. Te adjunto un trozo que código que hace
> todo
> >     > esto:
> >     >
> >     >        DBFDriver driver = new DBFDriver();
> >     >        String name = "my name";
> >     >
> >     >
> >     LayerFactory.getDataSourceFactory().addFileDataSource(driver.getName
> (),
> >     >                name,
> >     >               "/home/revartj/Desktop/tabla.dbf");
> >     >        DataSource dataSource =
> >     > LayerFactory.getDataSourceFactory().createRandomDataSource(name,
> >     >                DataSourceFactory.AUTOMATIC_OPENING);
> >     >
> >     >        SelectableDataSource sds = new
> >     SelectableDataSource(dataSource);
> >     >        EditableAdapter auxea = new EditableAdapter();
> >     >        auxea.setOriginalDataSource(sds);
> >     >
> >     >        ProjectTable projectTable = ProjectFactory.createTable
> (name,
> >     >                auxea);
> >     >
> >     >        ProjectExtension ext = (ProjectExtension)
> >     > PluginServices.getExtension(ProjectExtension.class);
> >     >        ext.getProject().addDocument(projectTable);
> >     > Un saludo
> >     >
> >     > Jaime Traver wrote:
> >     >> Hola a todos de nuevo, buscando he encontrado algo pero no se
> >     >> exactamente que estoy haciendo mal, porque no me escribe nada en
> el
> >     >> fichero indicado, mi intención es crear una tabla.dbf para
> guardar
> >     >> información obtenida de otro procesos. En teoría, este trozo de
> >     >> código, tendría que me crearme únicamente la tabla con los
> >     nombre de
> >     >> los campos.
> >     >>
> >     >>             DBFDriver Fic = new DBFDriver();
> >     >>             String[] Campos=
> >     >> {"fieldA","fieldB","fieldC","fieldD","fieldE","fieldF"};
> >     >>             int [] fieldTypes={12,12,12,12,12,12};
> >     >>             File f= new
> >     >> File("/home/revartj/Desktop/tabla.dbf");
> >     >> Fic.open(f);
> >     >>             Fic.createSource("1", Campos, fieldTypes);
> >     >>             Fic.close();
> >     >>
> >     >>
> >     >> Un Saludo
> >     >>
> >
> ------------------------------------------------------------------------
> >     >>
> >     >> _______________________________________________
> >     >> gvSIG_desarrolladores mailing list
> >     >> gvSIG_desarrolladores en runas.cap.gva.es
> >     <mailto:gvSIG_desarrolladores en runas.cap.gva.es>
> >     >> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
> >     <http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores>
> >     >>
> >     >
> >     > _______________________________________________
> >     > gvSIG_desarrolladores mailing list
> >     > gvSIG_desarrolladores en runas.cap.gva.es
> >     <mailto:gvSIG_desarrolladores en runas.cap.gva.es>
> >     > http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
> >     >
> >     >
> >     >
> >     Un saludo.
> >
> >     --
> >     Vicente Caballero Navarro
> >     Grupo desarrollo gvSIG.
> >     IVER TI S.A.
> >     C/ Lérida, 20
> >     46005-Valencia
> >     Tlf.+34963354983
> >     www.iver.es <http://www.iver.es>
> >     www.gvsig.com <http://www.gvsig.com>
> >
> >
> >     _______________________________________________
> >     gvSIG_desarrolladores mailing list
> >     gvSIG_desarrolladores en runas.cap.gva.es
> >     <mailto:gvSIG_desarrolladores en runas.cap.gva.es>
> >     http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
> >     <http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores>
> >
> >
> > ------------------------------------------------------------------------
> >
> > _______________________________________________
> > gvSIG_desarrolladores mailing list
> > gvSIG_desarrolladores en runas.cap.gva.es
> > http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
> >
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20070712/bbf195ed/attachment-0001.htm


Más información sobre la lista de distribución gvSIG_desarrolladores