Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   ERROR: Data Type mismatch in criteria expression (https://www.clubdelphi.com/foros/showthread.php?t=61981)

El Mike 29-11-2008 00:09:23

ERROR: Data Type mismatch in criteria expression
 
Hola amigos y amigas del club..

Explico mi problema: manejo delphi 2006 y acces, estoy tratando de hacer una consulta entre fechas y otro dato (digamos modelo), pues bien el asunto es que al hacer mi consulta por medio de un TADOQuery me arroja el siguiente error: "Data Type mismatch in criteria expression".

Ya revice mis tipos de datos en la DB y son de tipo 'Date'.

les pongo el codigo de mi consulta para que lo chequen y me digan si estoy mal... segun yo el codigo esta bien.

para sacar las fechas utilizo dos TDateTimepicker, uno para la fecha inicial y otro para la fecha final.

Código Delphi [-]
QC.Close;
   QC.SQL.Clear;
   QC.SQL.Add('SELECT * from envios');
   QC.SQL.Add('Where (envios.modelo = :mod) and (envios.fecha Between (fecha >= :Fecha1) and (fecha <= :Fecha2))');

   QC.SQL.Add('ORDER By envios.Fecha');
   QC.Parameters.ParamByName('Mod').Value:=frmfreportes.Edopcion.Text;
   QC.Parameters.ParamByName('Fecha1').Value:=frmfreportes.MCdesde.Date;
   QC.Parameters.ParamByName('Fecha2').value:=frmfreportes.MCHasta.Date;

   QC.active:=true;
   QC.Open;


Saludos...

Lepe 29-11-2008 02:54:25

Así debería ir:
Código Delphi [-]
QC.Close;
   QC.SQL.Clear;
   QC.SQL.Add('SELECT * from envios');
   QC.SQL.Add('Where (envios.modelo = :mod) and (envios.fecha Between :Fecha1 and :Fecha2)');

   QC.SQL.Add('ORDER By envios.Fecha');
   QC.Parameters.ParamByName('Mod').Value:=frmfreportes.Edopcion.Text;
   QC.Parameters.ParamByName('Fecha1').Value:=trunc(frmfreportes.MCdesde.Date);
   QC.Parameters.ParamByName('Fecha2').value:=trunc(frmfreportes.MCHasta.Date);

   QC.active:=true;
   QC.Open;

he retocado la sintaxis de between y añadir el trunc porque Tdate y Tdatetime es lo mismo en delphi, así que le pasaba también la hora.

Saludos

El Mike 01-12-2008 16:09:55

k tal Lepe... gracias por tu respuesta.

utilice el codigo con la modificacion que hiciste, pero me sigue marcando el mismo error, la verdad sigo sin entender por k me lo marca, ya revice todos mis tipos de datos relacionados con la consulta y es en las fechas donde me marca el error.

mencionas que tal vez es por que tambien le pasaba la hora, revice mi base de datos y solo guardo la fecha (sin la hora), verificare ese punto.

saludos.

eduarcol 01-12-2008 16:17:47

y modelos que tipo de campo es? concuerda con lo qe el usuario pueda escribir en el texto?

El Mike 01-12-2008 16:50:07

buen dia Eduarcol

modelos es solo un string que paso desde un Tedit.

El Mike 01-12-2008 17:04:25

amigos....

Cambie los TDateTimePicker por TMaskedit y la consulta me sale a la perfeccion.

Seguire buscando el por que con los TDateTimePicker no me sale la consulta.

Saludos.

eduarcol 01-12-2008 19:45:42

Cita:

Empezado por El Mike (Mensaje 328941)
amigos....

Cambie los TDateTimePicker por TMaskedit y la consulta me sale a la perfeccion.

Seguire buscando el por que con los TDateTimePicker no me sale la consulta.

Saludos.


¿Podrias colocar el trozo de codigo modificado según las instrucciones de Lepe?

Es raro que no salga

El Mike 01-12-2008 22:22:46

es el mismo que muestra el compañero Lepe...

lo estoy manejando con TMaskedit.. debido a la urgencia con que me estan pidiendo este proyecto y como ya tenia una semana batallando con lo mismo,

ahora tengo otro problema que es que no me muestra el QuickRep en el que pretendo mostrar los datos, tal parece que el preview no funciona bien por k se salta hasta la pantalla que quiero mostrar al cerrar el preview.

Saludos.


La franja horaria es GMT +2. Ahora son las 00:41:10.

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