Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   WINDOWS 7 -problema con fechas (https://www.clubdelphi.com/foros/showthread.php?t=68756)

Galahad 05-07-2010 10:22:06

WINDOWS 7 -problema con fechas
 
Hola, buenos días y saludos a todos...

Este problema ya lo comenté hace un par de meses.... , sigue sin solución...

Una vez instalada una aplicación desarrollada con paradox en windows 7, resulta que tengo que incluir esta sentencia en todos los 'Formcreate' de los formularios que utilizan fechas para filtrar datos en consultas sqls.

Cita:

sysutils.shortdateformat := 'dd/mm/yy';
hago esto porque cuando intentaba utilizar un filtro de fecha, me saltaba el error por ejemplo:
Cita:

06/30/10 is not a valid date..
El caso es que he llegado a un módulo del programa en el cual esta solución no funciona (el mismo error anterior lo devuelve el reporteador Reportbuilder), por lo que ahora mismo tengo ese módulo bloqueado para el cliente.
He comprobado el formato de fecha del windows, el format de fecha que figura en la configuración del bde.....,nada de nada...

El caso es que en otro windows 7 funciona sin problemas y me consta que ambos windows estan actualizados......
Si ha alguien se le ocurre alguna idea que pueda probar...se lo agradeceria.
Gracias....

Ñuño Martínez 05-07-2010 11:22:05

Quizá el problema sea que los dos Win7 tienen configuraciones locales diferentes. Ten en cuenta que los norteamericanos usan otra nomenclatura (para variar), la "mm/dd/yyyy", esto es, primero el mes, luego el día y finalmente el año.

Por otro lado, "06/30/10" no es una fecha válida para "dd/mm/yy": ¡el mes 30 no existe!

Lo que digo: comprueba las configuraciones locales no sea que el problema venga por ahí.

Galahad 05-07-2010 14:57:31

Cita:

Empezado por Ñuño Martínez (Mensaje 369182)
Quizá el problema sea que los dos Win7
Lo que digo: comprueba las configuraciones locales no sea que el problema venga por ahí.

ya lo he comprobado,, y son iguales....
vaya misterio......

Lepe 05-07-2010 15:27:15

Eso de sysutils.shortdateformat es un poquito raro... Verás, esa instrucción deberías ponerla únicamente en la primera ventana o modulo que creas en tu programa en la parte initialization, ¡Y nada más que allí!

En cuanto a reportBuilder, supongo lo mejor es enviarle las fechas con formato americano 'mm/dd/yyyy' ya que el BDE (como casi todos los motores por defecto) usan ese formato de fechas.

Lo más conveniente en estos casos es usar parámetros en la consulta, aunque ignoro si es viable:
Código Delphi [-]
query1.sql.text := 'select * from fechas where fecha1 >= :lafecha';
query1.parambyname('lafecha').asDateTime := trunc(datetimepicker1.date)

Lo del trunc es para no pasar la parte horaria a la consulta.

Suerte.

Galahad 06-07-2010 16:14:26

Cita:

Empezado por Lepe (Mensaje 369200)
Eso de sysutils.shortdateformat es un poquito raro... Verás, esa instrucción deberías ponerla únicamente en la primera ventana o modulo que creas en tu programa en la parte initialization, ¡Y nada más que allí!

En cuanto a reportBuilder, supongo lo mejor es enviarle las fechas con formato americano 'mm/dd/yyyy' ya que el BDE (como casi todos los motores por defecto) usan ese formato de fechas.

Lo más conveniente en estos casos es usar parámetros en la consulta, aunque ignoro si es viable:
Código Delphi [-]query1.sql.text := 'select * from fechas where fecha1 >= :lafecha'; query1.parambyname('lafecha').asDateTime := trunc(datetimepicker1.date)


Lo del trunc es para no pasar la parte horaria a la consulta.

Suerte.

muy bueno lo del trunc de la fecha, no conocia ese truco....
el caso es que todo me funciona bien en todos los ordenadores menos en este dichoso windows 7.. ,,

Galahad 13-07-2010 21:31:01

Solución a problema fecha windows 7
 
hola...
me contesto a mi mismo con la solución al problema comentado..

Parece ser que es otro 'bug' del windows 7 ¿ que raro, :) verdad ?
En determinadas circunstancias, aunque en configuración regional podamos ver configurado el teclado 'español', y formato de fecha corta 'dd/mm/yy',
determinadas circunstancias, como el cambio de la cuenta de usuario u otras cuestiones,, el windows, (o delphi), utilizan el formato americano.
SOLUCIÓN: Simplemente he entrado en la configuración regional, he cambiado la configuración por ejemplo a 'Inglés', se valida ,, se vuelve a entrar ,se deja la de castellano (cambiando el formato de fecha corta)... y,,,, FUNCIONA !!!..

En este enlace se explica el problema,,,, es gracioso,, como uno explica que tiene que cambiar/confirmar la configuración regional de CIENTOS DE CLIENTES.. :eek: :D
VIVA EL LINUX,,, .....

Ñuño Martínez 14-07-2010 19:08:05

Así que al final sí era la configuración. ;) :D

Cuanto más moderno, peor. XD

Rako 14-10-2010 18:28:18

jeje a mi tambien me acaba de pasar....gracias por publicar la solucion

MichelH 13-08-2011 16:35:15

Tengo el mismo problema, en varias computadoras (aun con win 7) funciona bien menos una. La unica diferencia es que es Windows 7 de 64bits.

Probare lo que dicen de cambiar a Inglés y Regresar, en mi caso, Español Latinoamericano.

Veremos que sucede...


La franja horaria es GMT +2. Ahora son las 20:32:59.

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