Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-02-2015
uberos uberos is offline
Registrado
NULL
 
Registrado: feb 2015
Posts: 7
Poder: 0
uberos Va por buen camino
Error General SQL en Fecha

Hola amigos, soy nuevo en delphi y quizás sea una tonteria pero a mi me esta volviendo loco, os cuento.

Estoy trabajando en un proyecto en el cuál tengo que modificar un programa de escritorio realizado en delphi 5. El tema es que el código funciona en el servidor de producción pero en mi equipo de desarrollo con una copia de la base de datos identica al de producción me da error en conversiones de fecha. El programa tira de sql server y estoy usando windows xp, el código donde da el error es este:

Datos.Params[0].asDate := StrToDate(eFecha.Text);
Datos.Open;


Datos contiene la consulta select y le paso el parámetro fecha. Haciendole un debug a eFecha.Text me devuelve la fecha introducida '28/02/2015' pero cuando hace el StrToDate la fecha cambia al entero 42063. Cuando hago Datos.Open; salta el error general sql en fecha.

Curiosamente cambiando el anterior código a este si me funciona en mi equipo:

Datos.Params[0].asString := eFecha.Text;
Datos.Open;


Entiendo que me debe faltar alguna configuración a nivel de configuración de delphi, base de datos o sistema operativo para que en mi equipo funcione al igual que en el servidor de producción pero no se cuál.

Cualquier ayuda es bienvenida, saludos!
Responder Con Cita
  #2  
Antiguo 11-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Lo mismo es por el formato, yyyy/mm/dd mm/dd/yyyy etc.
Responder Con Cita
  #3  
Antiguo 11-02-2015
uberos uberos is offline
Registrado
NULL
 
Registrado: feb 2015
Posts: 7
Poder: 0
uberos Va por buen camino
En la instrucción SrtToDate veo que se le puede pasar el formato como parámetro pero.. ¿hay alguna forma de configurar este de una forma global para que el código funcione tal y como está?
Responder Con Cita
  #4  
Antiguo 11-02-2015
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.744
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Muestra el SQL que tiene la consulta.
Además, verifica que el tipo de dato del parámetro que quieres rellenar sea del tipo fecha (el campo en la base de datos quizás es un string).
ejemplo:
Código SQL [-]
CREATE TABLE TABLA
ID INTEGER,
FECHA VARCHAR(10);
Código:
SQL := 'SELECT * FROM TABLA WHERE FECHA <= :FECHA'
Si el campo FECHA es del tipo VARCHAR(10), el hecho de enviárselo con el formato de fecha dará un error.
Responder Con Cita
  #5  
Antiguo 12-02-2015
uberos uberos is offline
Registrado
NULL
 
Registrado: feb 2015
Posts: 7
Poder: 0
uberos Va por buen camino
La consulta es esta:
Código SQL [-]
SELECT *
FROM DATOS
WHERE FECHA <= :FECHA AND M.TIP IN ('01','02','91','92')

En la base de datos Fecha esta definida como DATETIME.
Por lo que veo al hacer el StrToDate la fecha cambia a días: 42063 (sumados a la fecha 30/12/1899 da la fecha introducida)

El StrToDate debería de pasar a un formato fecha como este: "28/12/2015" ya que por lo visto al pasar los días a la consulta la select falla.

El problema parece estar relacionado más con Delphi que con Sql.
Responder Con Cita
  #6  
Antiguo 12-02-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.107
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por uberos Ver Mensaje
El problema parece estar relacionado más con Delphi que con Sql.
Creo que no, que el problema está más relacionada con el programador que con delphi o sql

Falta que pongas más código, con eso solo no se puede saber nada, no somos adivinos.
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
Evitar error de excepción general con ficheros Belaix Varios 2 16-12-2008 16:57:53
Error General Sql Error lock conflict ...deadlock Patricio Varios 1 19-03-2008 14:52:14
general sql error -2147221164 luchin001 Conexión con bases de datos 1 02-12-2004 17:44:49
General SQL Error ander SQL 3 09-09-2004 16:05:07
General SQL ORACLE ODBC error jmbarrio SQL 0 26-02-2004 12:10:19


La franja horaria es GMT +2. Ahora son las 17:31:50.


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