[Gvsig_desarrolladores] Re: Crear Tabla
Jaime Traver
revartj en gmail.com
Mie Jul 11 20:39:31 CEST 2007
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>
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
> >> 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
> >
> >
> >
> Un saludo.
>
> --
> Vicente Caballero Navarro
> Grupo desarrollo gvSIG.
> IVER TI S.A.
> C/ Lérida, 20
> 46005-Valencia
> Tlf.+34963354983
> www.iver.es
> www.gvsig.com
>
>
> _______________________________________________
> 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/20070711/9d388604/attachment-0001.htm
Más información sobre la lista de distribución gvSIG_desarrolladores