[Gvsig_desarrolladores] timestamp

marcos boullón magán marcosboullon en gmail.com
Lun Sep 4 14:45:32 CEST 2006


Hola,

Aquí va (adjunto) un ejemplo sencillo.

Una tabla almacena entidades con geometria (espacios), otra tabla
almacena información sobre reservas de las anteriores
(reservas_espacios, utiliza timestamp), y una vista hace la consulta
de entidades reservadas (reservados).

Intentad visualizar la vista en gvSIG (id_reserva_espacio, nombre,
geometria, fecha_inicio_evento, fecha_final_evento), y mirar la tabla
de atributos. A mí me aparece vacía en los campos de fechas.

Gracias,

M.

PD: En cualquier caso, si encontrais qué código añadir para que
soporte esos tipos de datos... ¿sería para la versión 1.0 alpha, o
para la 1.0 rc1?


El 4/09/06, Francisco José<fpenarru en iver.es> escribió:
> Hola Marcos
>
> ¿Nos puedes enviar un trocito de la tabla para que hagamos pruebas
> aquí?. Así te aseguras que con la RC1 te funcionará... .(y nosotros
> también de que soportamos time y timestamp como se debe).
>
> Salu2.
>
> marcos boullón magán escribió:
> > 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
> >>
> >
>
>
> --
> 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
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : reservas.zip
Tipo       : application/zip
Tamaño     : 761 bytes
Descripción: no disponible
Url        : http://runas.cap.gva.es/pipermail/gvsig_desarrolladores/attachments/20060904/62822a91/reservas.zip


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