[Gvsig_desarrolladores] timestamp

marcos boullón magán marcosboullon en gmail.com
Lun Sep 4 13:25:38 CEST 2006


Hola Francisco,

Me parece que ese método no aparece en la versión 1.0 alpha de gvSIG
(tal vez sea específico del 1.0 rc1 sobre el que trabajais). Lo más
próximo que he encontrado es:

fichero extGeoProcessing/src/com/iver/cit/gvsig/geoprocess/core/fmap/XTypes.java
public static Value getValue(Object object, int fieldType) {
	[...]
	case Types.DATE:
	Date dtval = (Date) object;
	solution = ValueFactory.createValue(dtval);
	break;
	[...]

fichero extJDBC/src/com/iver/cit/gvsig/fmap/drivers/jdbc/postgis/PostGisDriver.java
public Value getFieldValue(long rowIndex, int idField)
	throws com.hardcode.gdbms.engine.data.driver.DriverException {
		[...]
		ByteBuffer buf = ByteBuffer.wrap(byteBuf);
		[...]
		if (metaData.getColumnType(fieldId) == Types.INTEGER)
			return ValueFactory.createValue(buf.getInt());
		[...]


Así que he modificado el fichero PostGisDriver.java para añadir...

if (metaData.getColumnType(fieldId) == Types.TIME)
  return ValueFactory.createValue(rs.getTime(fieldId));
if (metaData.getColumnType(fieldId) == Types.TIMESTAMP)
  return ValueFactory.createValue(rs.getTimestamp(fieldId));

... y de momento NO funciona. En vez de mostrarme esos campos
cubiertos ahora me aparecen todos vacíos (en la tabla de atributos si
los cargo en capa vectorial, pero se siguen viendo bien si los cargo
como tabla alfanumérica). Cambiar getTime(), getTimestamp() por
getString() tampoco me vale porque devuelve códigos extraños (supongo
que las fechas en binario puro) en esos campos.

(No es importante para lo que estoy haciendo, pero queda feo.)

Gracias,

M.

El 4/09/06, Francisco José<fpenarru en iver.es> escribió:
> Hola Marcos.
>
> Pues acabas de reportarnos un bug.
>
> A la clase XTypes, en libFMap (com.iver.cit.gvsig.fmap.drivers.XTypes)
> le faltan unas cuantas líneas. No están puestos todos los tipos que
> puede soportar una base de datos, así que habrá que ir poniéndolos poco
> a poco. No lo he probado, pero seguramente añadiendo éstas líneas se
> corregirá el problema. En la siguiente versión, esto ya irá "de serie".
>
>             if (metaData.getColumnType(fieldId) == Types.TIME)
>                 val = ValueFactory.createValue(rs.getTime(fieldId));
>             if (metaData.getColumnType(fieldId) == Types.TIMESTAMP)
>                 val = ValueFactory.createValue(rs.getTimestamp(fieldId));
>
> (Insertar después de la línea 152, en el método
> public static Value getValue(ResultSet rs, int fieldId) throws SQLException
>
> Gracias por tu ayuda, y hasta otra.
>
> marcos boullón magán escribió:
> > Hola,
> >
> > Quería saber si alguien me puede confirmar que observa este efecto, o
> > si es un problema de mi extensión.
> >
> > Resulta que leyendo capas vectoriales desde una base de datos PostGIS
> > que meto en la vista activa, veo que en la tabla de atributos de la
> > capa hay campos en blanco. Son campos que en SQL tienen el tipo de
> > dato "timestamp", el que se utiliza para almacenar fechas ('2006-09-02
> > 12:00'):
> >
> > En la tabla original de la base de datos puedo verlos. Si los cargo en
> > gvSIG como tabla de datos alfanumérica, puedo verlos. Si los cargo
> > como capa vectorial, al mostrar la tabla de atributos están vacíos.
> >
> > Datos:  Java 1.4.2_11, gvSIG 1.0 alpha, PostGIS 1.1.0 (driver de
> > PostGis parcheado para resolver un problema de iteradores...  ver el
> > hilo "consulta SQL involucrando varias tablas")...
> >
> > Gracias,
> >
> > marcos
> >
>
>
> --
> Francisco José Peñarrubia
> Equipo gvSIG
>
> IVER T.I. S.A.
> c/Salamanca 50
> 46005 Valencia
> Spain
>
>
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en runas.cap.gva.es
> http://runas.cap.gva.es/mailman/listinfo/gvsig_desarrolladores
>

-- 
-- marcos boullón magán
-- universidade de Santiago de Compostela



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