Delphi - Error al traer fecha de la DB 1899

 
Vista:
sin imagen de perfil
Val: 10
Ha aumentado 1 puesto en Delphi (en relación al último mes)
Gráfica de Delphi

Error al traer fecha de la DB 1899

Publicado por tomas (2 intervenciones) el 02/11/2019 15:50:24
Buenas tardes a todos , este es mi primer post , a ver si alguien me puede ayudar a resolver lo que me pasa.
si coloco el SELECT abajo mostrado en el sql string del componenete adoquery me trae los datos a la perfeccion y me los muestra en un componente dbgrid automaticamte ya q tengo un datasource asociado al dbgrid.
el problema aparece cuando lo quiero hacer por codigo
Tengo un tabla en una DB con varios campos uno de ellos es el campo fecha, cuando ejectuto el codigo en la linea con el asterisco me trae una fecha cualquiera 1899-12-30,
el decodedate que sigue es porque desp necesito comparar una fecha ingresada mediente un datetimepicker contra la fecha de la tabla de la db.
como hago para q me ponga la fecha correcta , en vez de 1899 etc...
gracias por su tiempo , espero q alguien pueda darme una mano

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
    Y,M,D,Ydb,Mdb,Ddb: Word;
    FechaDB: TDate; // tambien la he declarado como  TDateTime;
 
          FechaDB:=-1000000;
          ADOQuery2.Active:= false;
          ADOQuery2.SQL.Clear;
          ADOQuery2.SQL.Add ('SELECT Fecha, Monto, NumeroSobre FROM tabladatosentrada
          WHERE varios = :var_sol ORDER BY Fecha DESC ');
          ADOQuery2.Parameters.ParamByName('var_sol').Value := TLabelSol.Caption;
   *** FechaDB:= ADOQuery2.FieldByName('Fecha').AsDateTime;
          Decodedate(FechaDB,Ydb,Mdb,Ddb);
          Showmessage('el año es' +IntToStr(Ydb));
          Showmessage('el mes es' +IntToStr(Mdb));
          Showmessage('el dia es' +IntToStr(Ddb));
          Decodedate(DateTimePicker1.Date,Y,M,D);
          ADOQuery2.Active:=true;
          ADOQuery2.ExecSQL;
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
sin imagen de perfil
Val: 10
Ha aumentado 1 puesto en Delphi (en relación al último mes)
Gráfica de Delphi

Error al traer fecha de la DB 1899

Publicado por tomas (2 intervenciones) el 04/11/2019 22:12:25
Ya lo auto solucione error tan simple como ponerlo abajo del execsql. cunado uno es idio... eso pasa . les dejo el codigo corregido por si alguien quiere lo nec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
Y,M,D,Ydb,Mdb,Ddb: Word;
FechaDB: TDate;
 
ADOQuery2.Active:= false;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add ('SELECT Fecha, Monto, NumeroSobre FROM tabladatosentrada
WHERE varios = :var_sol ORDER BY Fecha DESC ');
ADOQuery2.Parameters.ParamByName('var_sol').Value := TLabelSol.Caption;
ADOQuery2.Active:=true;
ADOQuery2.ExecSQL;
FechaDB:= ADOQuery2.FieldByName('Fecha').AsDateTime;
Decodedate(FechaDB,Ydb,Mdb,Ddb);
Showmessage('el año es' +IntToStr(Ydb));
Showmessage('el mes es' +IntToStr(Mdb));
Showmessage('el dia es' +IntToStr(Ddb));
Decodedate(DateTimePicker1.Date,Y,M,D);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar