Ver Mensaje Individual
  #3  
Antiguo 27-01-2006
Equinoxe Equinoxe is offline
Miembro
 
Registrado: dic 2005
Posts: 17
Reputación: 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