Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-04-2019
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Problema con operaciones con fechas

No sé si esto tendría que ir aquí o en el foro de FB porque es sobre una base de datos de este motor. A ver:

Tengo una aplicación en la que se pide al entrar usuario y clave de acceso, que están guardados en sendas tablas, una para los usuarios y otra para las claves porque le tengo puesta fecha de caducidad a las mismas. Una vez que se introduce y valida la clave ejecuto este código para comprobar su validez:
Código:
fMenu->Auxiliar->Close();
fMenu->Auxiliar->SQL->Text = "SELECT B.Caduca, B.Caduca - CURRENT_DATE FROM Usuarios A, Claves B WHERE A.Nombre = :Nombre AND A.Nombre = B.Nombre AND B.Clave = :Clave";
fMenu->Auxiliar->ParamByName("Nombre")->AsString = NombreUser;
fMenu->Auxiliar->ParamByName("Clave")->AsString  = ClaveUser;
fMenu->Auxiliar->Open();

if (fMenu->Auxiliar->Fields->FieldByNumber(2)->AsInteger < 11)
{
     cAux = "Su clave caduca el " + fMenu->Auxiliar->FieldByName("Caduca")->AsDateTime.FormatString("ddddd");

     if (fMenu->Auxiliar->Fields->FieldByNumber(2)->AsInteger < 1)
     {
          Mensaje(3, cAux + ".\nDebe cambiar la clave de acceso al sistema.", "Continuar");

          Application->CreateForm(__classid(TfCamCla), &fCamCla);
          fCamCla->Tag = 1;
          fCamCla->Nombre->Text = NombreUser;
          fCamCla->ShowModal();

          if (fCamCla->Tag < 0)
          {
               TipoInstalacion = fCamCla->Tag;
               delete fCamCla;
               Mensaje(1, "No se ha modificado la clave. Sistema desconectado.", "Terminar");
               Application->Terminate();
               return TipoInstalacion;
          }
          delete fCamCla;
     }
     else
          Mensaje(4, cAux, "Continuar");
}
Y la tabla en que se guardan las claves es esta:
Código:
CREATE TABLE Claves (Nombre VARCHAR(15), Clave VARCHAR(12), Fecha DATE, Caduca DATE, CONSTRAINT PK_Claves PRIMARY KEY (Nombre, Clave))
No voy a entrar si el código podía ser más sencillo o no; no es el problema. EL problema es que en todas las máquinas que está corriendo la aplicación, incluida la mía, ese query SELECT B.Caduca, B.Caduca - CURRENT_DATE... funciona a la perfección, menos en una que usa Windows 10 y que TODOS los días le obliga al usuario a cambiar la clave. Había pensado que estuviera mal la fecha del sistema pero acabo de comprobar que es correcta.
Por poner un ejemplo, con el usuario que está dando error este es el último registro que hay en esa tabla:
Cita:
Nombre: JOSEMIGUEL
Clave: DINGO47
Fecha: 09/04/2019
Caduca: 09/06/2019
Como veis la fecha tope está en el rango en que no debería saltar el error, pero no hay forma de que ejecute bien ese trozo de código y empiezo a pensar que tiene que ver con el sistema operativo.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
operaciones con fechas GustavoCruz Firebird e Interbase 12 07-04-2009 22:52:35
Operaciones con fechas tifosi_loco SQL 2 06-12-2007 14:26:08
Operaciones con fechas jandres Varios 2 07-11-2006 19:16:27
Operaciones con fechas febito Oracle 1 05-08-2004 03:30:09
operaciones con fechas ing_alsaac Varios 2 11-05-2003 10:02:57


La franja horaria es GMT +2. Ahora son las 16:22:06.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi