Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-01-2006
ZRR ZRR is offline
Miembro
 
Registrado: jun 2005
Posts: 39
Poder: 0
ZRR Va por buen camino
Question Error conversion from string '26/01/2006'

Que tal, buen dia a todos
Tengo un problema con una consulta SQL que usa una fecha, uso Delphi 7, Firebird 1.5 sobre Win XP en ingles

El programa pide fecha y cliente para buscar los pedidos de dicho cliente en la fecha indicada. Para la fecha utilizo un DateTimePicker.
Una vez que el usr introduce los datos, presiona un botón y se ejecuta un query con la fecha y el cliente indicados:
Código Delphi [-]
EditFecha.Field.Value:= FormatDateTime('mm"/"dd"/"yyyy', DateTFecha.Date);
Código SQL [-]
IBqry.SQL.Clear;
IBqry.SQL.Add('Select CvePedido from Pedidos where Fecha='''+
EditFecha.Field.AsString +''' and CveCliente='+ ComboCliente.Field.AsString);
IBqry.Open;
...
IBqry.Close;

Todo funciona bien en la maquina de desarrollo (servidor), pero al correr a una maquina con Windows XP en español (cliente) conectada con la base de datos en la maquina de desarrollo con Windows XP en ingles (servidor) al ejecutar la misma aplicación me regresa el error:
Código:
Conversion error from string '26/01/2006'
Como pueden ver, el edit que contiene la fecha 'EditFecha' ya esta formateando la fecha a 'mm"/"dd"/"yyyy' de la fecha del DateTimePicker.

Alguien saben a que se debe?

Muchas gracias por su ayuda
Responder Con Cita
  #2  
Antiguo 27-01-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Esa manía... esa manía!
Cita:
Empezado por ZRR
Código Delphi [-]
EditFecha.Field.Value:= FormatDateTime('mm"/"dd"/"yyyy', DateTFecha.Date);
¿Porque si tenes una fecha la convertís a una cadena?
Código Delphi [-]
EditFecha.Field.Value:= DateTFecha.Date;
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 27-01-2006
Equinoxe Equinoxe is offline
Miembro
 
Registrado: dic 2005
Posts: 17
Poder: 0
Equinoxe Va por buen camino
Configuración regional de idioma.

El error se debe a la configuración regional y de idioma local del sistema operativo.

En inglés el formato para fecha es mm/dd/yyyy, sin embargo en español es dd/mm/yyyy, es por eso que no funciona con el Windows en español.

Firebird es incapaz de entender e interpretar tu fecha string en formato Timestamp; aunque en realidad no es culpa de Firebird. Puedo sugerirte dos soluciones:

[1] Si vas a insertar el valor de la fecha directamente en la sentencia SQL al construírla en el Query, entonces deberías usar el formato universal aceptado en SQL, que es: yyyy-mm-dd.

[2] En vez de insertar los valores directamente en la sentencia SQL de tu Query, utiliza parámetros para pasar estos valores a la sentencia.

Tu sentencia quedaría así:
Código:
SELECT CvePedido 
FROM Pedidos 
WHERE Fecha = :Fecha AND CveCliente = :CveCliente
De esta manera, puedes pasar el valor de la fecha directamente de tu DateTimePicker, sin tener que preocuparte por la conversión regional de idioma. Tu código Delphi quedaría así:
Código Delphi [-]
IBqry.ParamByName('Fecha').Value := DateTFecha.Date;
IBqry.ParamByName('CveCliente').Value := ComboCliente.Field.AsString;

Te recomiendo ampliamente la opción [2] sobre la [1]; es más elegante y te permite abstraerte de detalles regionales para que puedas concentrarte en cosas más importantes.

Última edición por Equinoxe fecha: 27-01-2006 a las 22:19:43.
Responder Con Cita
  #4  
Antiguo 27-01-2006
Equinoxe Equinoxe is offline
Miembro
 
Registrado: dic 2005
Posts: 17
Poder: 0
Equinoxe Va por buen camino
__________
Imágenes Adjuntas
Tipo de Archivo: jpg MouthShout.jpg (999 Bytes, 117 visitas)

Última edición por Equinoxe fecha: 28-01-2006 a las 03:15:04.
Responder Con Cita
  #5  
Antiguo 27-01-2006
ZRR ZRR is offline
Miembro
 
Registrado: jun 2005
Posts: 39
Poder: 0
ZRR Va por buen camino
sin comentarios
Responder Con Cita
  #6  
Antiguo 27-01-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por Equinoxe
¡Buéh, porque este pibe es un boludo!
¿Qué querés...? Hay gente en este mundo a la que le fascinan las cadenas.
Cuidiado!.. entre amigos y con confianza no hay problema, pero en otros casos esa palabra puede sonar muy agresiva y grosera!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta



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
[Fatal Error]XBSel.pas(1): Line Too long.... Enan0 Varios 6 06-12-2005 22:10:58
Como Configurar WinXP como Servidor de FTP???? AGAG4 Internet 14 07-10-2005 22:29:47
deployment descriptor Aileen JAVA 0 08-07-2004 22:40:38
Problema con conexion a la bd Telemaco Conexión con bases de datos 3 28-04-2004 17:19:59


La franja horaria es GMT +2. Ahora son las 10:51:44.


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