error con fecha en dbf + java
Amigos tengo problema para almacenar valores date en un DBF desde java, les dejo el código para ver si alguno me da una mano.
El error es el siguiente:
Exception in thread "main" java.lang.UnsupportedOperationException: Cannot do this on a Date field
at com.linuxense.javadbf.DBFField.setFieldLength(DBFField.java:255)
at DBFWriterTest.main(DBFWriterTest.java:21)
Y si quito la lines 21 que es la que da el error, me muestra lo siguiente.
Exception in thread "main" com.linuxense.javadbf.DBFException: Invalid value for field 1
at com.linuxense.javadbf.DBFWriter.addRecord(DBFWriter.java:174)
at DBFWriterTest.main(DBFWriterTest.java:42)
Código:
import com.linuxense.javadbf.*;
import java.io.*;
import javax.swing.JOptionPane;
import java.util.Date.*;
public class DBFWriterTest {
public static void main( String args[])
throws DBFException, IOException {
// let us create field definitions first
// we will go for 3 fields
//
DBFField fields[] = new DBFField[ 4];
fields[0] = new DBFField();
fields[0].setDataType( DBFField.FIELD_TYPE_C);
fields[0].setName("IDENTIFICA");
fields[0].setFieldLength( 15);
fields[1] = new DBFField();
fields[1].setName("FECHA");
fields[1].setDataType( DBFField.FIELD_TYPE_D);
fields[1].setFieldLength( 8);// acá me da el error
fields[2] = new DBFField();
fields[2].setName( "NROTEST");
fields[2].setDataType( DBFField.FIELD_TYPE_C);
fields[2].setFieldLength( 3);
fields[3] = new DBFField();
fields[3].setName( "VALOR");
fields[3].setDataType( DBFField.FIELD_TYPE_C);
fields[3].setFieldLength(100);
if (fields[3] == null) {
System.out.println("valor nulo");
}
DBFWriter writer = new DBFWriter();
writer.setFields( fields);
// now populate DBFWriter
//
Object rowData[] = new Object[4];
rowData[0] = "82345";
rowData[1] = "09022012";
rowData[2] = "414";
rowData[3] = "99.5";
writer.addRecord( rowData);
FileOutputStream fos = new FileOutputStream( "ResAxsym.dbf");
writer.write( fos);
fos.close();
}
}
Saludos y gracias.
- Inicie sesión o regístrese para enviar comentarios