![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
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");
}
Código:
CREATE TABLE Claves (Nombre VARCHAR(15), Clave VARCHAR(12), Fecha DATE, Caduca DATE, CONSTRAINT PK_Claves PRIMARY KEY (Nombre, Clave)) Por poner un ejemplo, con el usuario que está dando error este es el último registro que hay en esa tabla: Cita:
|
|
#2
|
||||
|
||||
|
Mira en la configuración de windows, "regional" para ver qué formato de fecha tiene, vaya a ser diferente al resto de equipos.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#3
|
|||
|
|||
|
¿Has comprobado los valores específicos que devuelve la query en ese ordenador y caso concreto? ¿Qué devuelve?
|
|
#4
|
|||
|
|||
|
Será que los registros con el nombre de usuaio y/o contraseña no están en la base de datos ?
La parte del puede fallar si el query no retorna registros. Prueba que otro usuario trate de ingresar en esa máquina.
__________________
Luis Fernando Buelvas T. |
|
#5
|
||||
|
||||
|
Gracias por las respuestas.
Cita:
Cita:
Cita:
Hice la prueba el otro día y devolvía valores coherentes. |
|
#6
|
|||
|
|||
|
Cuando la cosa está así, no ves qué falla, y tienes que correrlo en casa del cliente, yo recurro al OutputDebugString: le metes entre cada línea de código y la siguiente un ODS diciendo que estás ahí y los valores que importen. Luego en el cliente, corres p.ej. el DebugView de Microsoft (quizás como administrador), y ejecutas tu programa, verificando los valores que aparecen.
Con frecuencia suele ser alguna tontería, que al ver esa "traza" queda clara. |
|
#7
|
||||
|
||||
|
Cita:
Si lo corro en mi máquina me da bien los datos (dos fechas y la diferencia entre ambas) pero en esa "maldita" máquina la fecha de caducidad me da una hora (00:00:00) y en la base de datos esa fecha está bien grabada. He estado viendo como me indicó Casimiro la configuración regional y está bien. Cada vez lo entiendo menos porque es el único sitio de los que usan fechas que ocurre esto. No sé si "forzando" a que devuelva una fecha con un CAST se puede solucionar. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
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 |
|