PDA

Ver la Versión Completa : Mostrar campos fechas de postgres en un grid


yusnerqui
19-05-2016, 22:26:10
Hola amigos del foros, cuanto tiempo.
Les cuento que sigo con Delphi 7 mi eterno amor y ahora enfrento un proyecto en el cual debo conectarme a una base de datos Postgres para lo cual uso componentes zeos, hasta ahí todo bien.
El problema me surge cuando trato de visualizar en mi grid una consulta que incluye un campo fecha, este no se metra correctamente, de hecho, todas las filas aparecen con la misma fecha y del 1869 o algo así.
Lo mejoré un poco convirtiendo el campo fecha a varchar mediante un cast de postgres, pero no me sirve porque a la hora de ordenar desde la aplicación no lo hace correctamente como es lógico.
Por tanto la pregunta sería como puedo mostrar en un grid y manipular los campos fechas de postgres desde Delphi 7 con componentes zeos.

Agradeciendo de antemanos les saluda

Yusnerqui

Ñuño Martínez
20-05-2016, 10:49:20
Nunca he usado Zeos, así que puede que mi comentario no encaje.

Supongo que estás usando un TStringGrid, ya que con TDBGrid no debería haber problema, salvo que haya un fallo (bug) en Delphi 7. Por eso pregunto, ¿con TDBGrid tienes algún problema?

Otra cosa que se me ocurre es que quizá la fecha no esté guardada en tiempo UNIX, que si no recuerdo mal es como suelen guardarse las fechas normalmente, o viceversa: que esté guardada en tiempo UNIX pero que no deba sera sí.

bitbow
20-05-2016, 19:59:32
Que tipo de dato tienes definido para la fecha?

Puedes usar el evento onSetText para cambiar el formato de fecha, para el orden no se como podrias hacer ya que depende del tipo de campo definido.

Saludos.

yusnerqui
28-05-2016, 23:24:08
Hola disculpa por la demora, es que me conecto con poca frecuencia a internet, les agradesco mucho la respuesta y les comento:

Si uso un dbGrid, mejor aun, uso un rxdbgrid, y el tipo de datos en la base de datos es date, de todos modos imagino que lo que me etá pasando es que la versión de zeos que uso no soporta el postgres 9.1 y acabo de descargar la última versión de zeos, lo pruebo y en la próxima conexión les cuento.

un afectuoso abrazo.


yusnerqui

wilcg
29-05-2016, 05:00:54
hola yusnerqui,

No soy experto pero parece que no se está guardando correctamente las fechas, prueba si funciona de esta manera.

with Query do
begin
Close;
SQL.Clear;
SQL.Add('INSERT INTO clientes('+
' dni, nombre, fecha ) VALUES ( '+
' :dni, :nombre, :fecha )');
ParamByName('dni').AsString := txtDni.Text;
ParamByName('nombre').AsString := txtNombre.Text;
ParamByName('fecha').Value := FormatDateTime( 'YYYY-MM-DD',Date ); //TEN ENCUENTA ESTA LINEA
ExecSQL;
end;