Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-07-2008
cesar_gta86 cesar_gta86 is offline
Miembro
 
Registrado: oct 2007
Posts: 32
Poder: 0
cesar_gta86 Va por buen camino
Question Problema con el formato de fechas utilizando una query.

Hola que tal amigos, de nuevo aquí solicitando su ayuda, miren lo que pasa es que tengo una query, y al momento en que se ejecuta el código sql, truena el sistema y me manda un mensaje de error que dice:


Código Delphi [-]Type mismatch in expression


que significa desigualdad del tipo en la expresión.

Ya estuve investigando aquí en el foro de Mysql, y a alguien le pasó el mismo problema y ya lo solucionó, lo que pasa es que el problema se encuentra en el formato de las fechas, pero en realidad no le entiendo. Ya que él utilizaba un procedure con paso de parámetros.

Les explico lo que estoy haciendo: quiero imprimir reportes de una fecha determinada o de un periodo de tiempo, pero para eso utilizo la query, para seleccionar los registros que se encuentren dentro de una fecha determinada.


Código Delphi [-]
Form36.query1.close;
Form36.query1.sql.clear;
Form36.query1.sql.text:='select * from inconsistencias where Fecha_fueron_dev=20080723'; //también voy a utilizar la función between para imprimir reportes que se encuentren dentro de un periodo de tiempo.
Form36.query1.execsql; //aquí manda el mensaje de error
Form36.query1.active:=true;





Pero al momento en que se ejecuta el código sql es cuando viene el error, la fecha la tomo de un datetimepicker, y la paso a cadena para asignarla a la query, por supuesto que el campo Fecha_fueron_dev es tipo date de la tabla de inconsistencias; como pueden ver cambié el orden de la fecha del datetimepicker que es (dia/mes/año) al formato de sql (año/mes/dia), pero sigue el problema.

Contraveneno solucionó este problema utilizando parámetros, de una propiedad de la query que se llama parambyname() pero yo no sé cómo aplicarlo en mi caso.

Espero y me puedan echar la mano, les doy las grácias desde ya.
Responder Con Cita
  #2  
Antiguo 29-07-2008
[coso] coso is offline
Miembro Premium
 
Registrado: may 2008
Ubicación: Girona
Posts: 1.678
Poder: 0
coso Va por buen camino
le estas pasando un entero y espera un datetime...
prueba de hacer

Código Delphi [-]

q.sql.text := 'select * from tabla where data =' + FormatDateTime('yyyy/mm/dd',data);

o bien usar los parametros, tal como indicabas

Código Delphi [-]
q.sql.text := 'select * from tabla where data = :fecha';
q.parambyname(':fecha').Asdatetime := datetimepicker1.Date;


PD: el formato usado varia segun que servidor SQL uses : Access, #mm/dd/aaaa#, sql server #dd/mm/aaaa#, etc...
Responder Con Cita
  #3  
Antiguo 29-07-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Solo una fe de erratas

Esto
Código Delphi [-]
q.parambyname(':fecha').Asdatetime := datetimepicker1.Date;
Debe ser
Código Delphi [-]
q.parambyname('fecha').Asdatetime := datetimepicker1.Date;

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 03-08-2008
cesar_gta86 cesar_gta86 is offline
Miembro
 
Registrado: oct 2007
Posts: 32
Poder: 0
cesar_gta86 Va por buen camino
Muchas grácias amigos, ya logré solucionar el problema.

Utilicé parámetros con la query.


Código Delphi [-]
query1.sql.text:='select * from inconsistencias where Fecha_fueron_dev between :f_ini and :f_fin';
query1.parambyname('f_ini').asdate:=datetimepicker1.date;
query1.parambyname('f_fin').asdate:=datetimepicker2.date;
query1.execsql;
query1.active:=true;





Grácias por sus respuestas.
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
Formato de Fechas luiz_leo Firebird e Interbase 3 27-07-2007 21:06:45
Problema al filtrar un Query entre fechas judit25 Conexión con bases de datos 18 20-04-2007 00:03:38
bucle for utilizando fechas barrauda Varios 3 01-02-2007 17:28:49
problema en un query utilizando dbexpress clanmilano SQL 0 14-06-2005 22:45:16
Problema con Query y Fechas anitra_cattivo Conexión con bases de datos 1 03-09-2003 19:15:42


La franja horaria es GMT +2. Ahora son las 08:11:03.


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