Delphi - Tabla paradox: actualizar campo segun la fecha....

 
Vista:

Tabla paradox: actualizar campo segun la fecha....

Publicado por Fernando (26 intervenciones) el 02/10/2004 18:59:03
Hola gente:
Tengo una tabla paradox en donde existen dos campos: uno es ' Edad' y el otro es fecha de Nascimiento llamado 'FNasc'.

Bueno , mi problema es que debo actualizar el campo Edad o sea la edad cuando es la fecha de cumpleaños y dejar grabado automaticamente.
En otras palabras, cuando es la fecha de cumpleaños(Nascimiento) , el campo Edad si dice 14, ahora cambie para 15 y quede asi hasta la próxima fecha de su aniversario.

¿Me pueden ayudar?
Agradezco infinitamente a quien lo haga!!!!!!

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

AHHHH!!!! me faltó decír................

Publicado por Fernando (26 intervenciones) el 02/10/2004 19:01:38
me faltó decir que uso Delphi 5 .

gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tabla paradox: actualizar campo segun la fecha.

Publicado por Mario Gimenez (3 intervenciones) el 02/10/2004 22:57:19
Hola , si creo que entendi tenes que actualizar un dato de una columna cuando la fecha actual es igual a alguna almacenada en el campo.
Si la coumna edad no esta indexada creo que solamente con hacer una consulta sql que te devuelva todas las filas que tengan la fecha actual y despues volver a hacer un update sumandole a el campo edad + 1 y creo que con eso esta , si no entendi bien avisame.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tabla paradox: actualizar campo segun la fecha.

Publicado por Fernando (1 intervención) el 03/10/2004 06:19:50
Antes os digo muchas gracias por la respuesta.
Es verdad, mas o menos lo pensé así, pero es necesario hacer consulta sql? Tengo solo una table paradox, y lo ideal seria leer campo fecha de nascimiento(sacando el año creo ) , luego compararla con la actual y después si es , sumarle + 1 al valor almacenado en edad.

mmm........ Cómo comenzarias ?

primero es determinar bien los types en la tabla y despues.............

fernando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tabla paradox: actualizar campo segun la fecha.

Publicado por Virum (484 intervenciones) el 03/10/2004 14:37:31
Hola:

La opción de Fernando es rápida, pero veo un problema: ¿que pasa si hoy que es fiesta el cliente no enciende el ordenador, o no utiliza la aplicación?, todos los que cumplan hoy años se quedan sin actualizar la edad hasta el próximo año.

Yo creo que habrá que recorrer la tabla entera e ir comprobando uno a uno. ¿con que periodicidad? dependerá de lo que se demore este proceso y de la importancia de tener la edad actualizada a diario o no tan frecuentemente.

Si recorres la tabla es muy simple, comparas la fecha de naciciento con la actual con la función YearsBetween que te da los años entre esas dos fechas (unit DateUtils), y lo guardas en el campo edad.

Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tabla paradox: actualizar campo segun la fecha.

Publicado por Fernando (26 intervenciones) el 03/10/2004 22:47:45
Antes que nada quiero agradecer la ayuda y voluntad de uds.
Tienes mucha razón, no pensé en esa posibilidad.
Como comenzariamos con el codigo fuente?
Me ayudais? parece fácil mas no lo es.

fernando
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Tabla paradox: actualizar campo segun la fecha.

Publicado por Virum (484 intervenciones) el 04/10/2004 00:01:18
Hola:

En el uses añade DateUtils:

interface

uses
Windows, Messages, ..... , DateUtils;

Esto puede ir en el evento OnCreate del form principal

TableLoquesea.Open;
//recorrer tabla
While not TableLoquesea.Eof do
begin
//poner en modo edición
TableLoquesea.Edit;
//guardar edad (en el campo Edad)
TableLoqueseaEdad.AsInteger := YearsBetween(TableLoqueseaFechaNacimiento.AsVariant,Date);
//gravar
TableAvisos.Post;
//siguiente registro
TableAvisos.Next;
end;

Está sobre la marcha sin probar.

Suerte. Virum.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar