[Gvsig_desarrolladores] Fwd: insertar un registro en un dbf

Juan Lucas Dominguez Rubio jldominguez en prodevelop.es
Vie Feb 12 10:38:04 CET 2010


Hola,
cuando el usuario pone en edición una capa basada en un shapefile, se está haciendo precisamente eso, el DBF ya existe y se añaden cosas a ese DBF en el momento de terminar la edición. Puedes mirar el código del método public void setEditing(boolean b) de la clase FLyrVect para ver cómo se inicia la edición.
 
Cuando el usuario termina la edición, el contenido de la capa en ese momento se vuelca en los archivos SHP/DBF/SHX. Para esto puedes ver el método saveLayer(FLyrVect layer, boolean set_editing) de la clase StopEditing.java. Como ves, el volcado se hace una sola vez siempre y cuando el usuario no salga del modo edición. Se supone que se van haciendo unas cuantas modificaciones en la capa y después se da por terminada la edición hasta la siguiente ocasión.
 
Es esto lo que buscabas?
Saludos,
 
Juan Lucas Domínguez Rubio
---
Prodevelop SL, Valencia (España)
Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
http://www.prodevelop.es <http://www.prodevelop.es/> 
---

________________________________

De: gvsig_desarrolladores-bounces en listserv.gva.es en nombre de Jose Yances
Enviado el: jue 11/02/2010 14:39
Para: gvsig_desarrolladores en listserv.gva.es
Asunto: [Gvsig_desarrolladores] Fwd: insertar un registro en un dbf



hola 

Estoy tratando de insertar un registro a un archivo dbf, pero hasta el momento solo he podido crear el dbf desde cero con el (los) registros que yo quiero de esta forma:

SelectableDataSource dbfDataSource = SelectableDataSource.createDbfSelectableDataSource(dbFile, true);
            int fcnt = dbfDataSource.getFieldCount();            
            OrderFileOutputStream shpOutputStream = new OrderFileOutputStream(dbFile);
            DbaseFileHeaderNIO myHeader;
            myHeader = DbaseFileHeaderNIO.createDbaseHeader(dbfDataSource);            
            myHeader.setNumRecords((int) dbfDataSource.getRowCount());            
            DbaseFileWriterNIO dbfWrite = new DbaseFileWriterNIO(myHeader, shpOutputStream);
            Object[] record = new Object[fcnt];                                
            record = igacFea.getValues();
            dbfWrite.write(record);        
            dbfWrite.close();

Pero lo que necesito es leer el archivo e insertar varios registros. alguna solucion=?


------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://listserv.gva.es/pipermail/gvsig_desarrolladores/attachments/20100212/2e7be21f/attachment.htm 


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