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)
-   -   Problema Inexplicable Con Una Consulta (https://www.clubdelphi.com/foros/showthread.php?t=21276)

carlos gonzalez 11-05-2005 22:45:52

Problema Inexplicable Con Una Consulta
 
Si no les llega mi mensaje por el archivo anexo y alguien me quiere echar la mano, porfas mandenme su correo para reenviarles el sistema. mil gracias.


Hola amigos tengo un problema inexplicable con una consulta que relaizo
sobre un rango de fechas, yo le indico mi rango de fechas y me saca fechas
que no coinciden con mi rango, ya tengo dos dias tratando de solucionar el
problema y no he podido. Si Alguien puede echarme la mano se lo voy agradecer infinitamente, que la verdad yo por mas que le busco no le encuentro el error.
Aqui les anexo un pequeño sistema con el que he estado haciendo pruebas,contiene un formulario con el que corro mos consultas, y una base de datos de access, solo ay que copiar los archivos a una carpeta llamada conre y crear una conexion ODBC llamada conex.

si corro una consulta con las fechas del 13/05/2004 al 31/05/2004 si saca los datos correctos

pero si la saco del 01/05/2004 al 31/05/2004 me saca fechas que no coinciden con el rango.
Si alguien me puede echar la mano se los voy agradecer infinitamente,Que Dios los bendiga.

Su amigo Charless

ramiretor 11-05-2005 23:23:26

Hola:
Necesitas poner tu consulta para que se pueda ver como la armas. Por que no la usas con parámetros y te olvidas de los problemas con el motor de BD que usas?

Saludos

carlos gonzalez 11-05-2005 23:41:49

codigo de la consulta
 
esta es la consulta que ejecuto

procedure TForm1.Button3Click(Sender: TObject);
begin

inicio:=formatdatetime('DD/MM/YYYY',FECHAI.Date);
fin:=formatdatetime('DD/MM/YYYY',FECHAf.Date);
fecha.Text:=inicio;
caliz.Text:=fin;
query1.Close;
query1.SQL.Clear;
// query1.SQL.Text:='select numparte,descripcion,unidad,precio,promedio,existencias,nivel_minimo,nivel_maximo,localizacion,fecha from materiales where FECHA = #'+datetostr(Fechai.date)+'#';
query1.SQL.Text:='select numparte,descripcion,unidad,precio,promedio,existencias,nivel_minimo,nivel_maximo,localizacion,fecha from materiales where FECHA between #'+datetostr(Fechai.date)+'# and #'+datetostr(Fechaf.date)+'#' ;
//query1.SQL.Text:='select numparte,descripcion,unidad,precio,promedio,existencias,nivel_minimo,nivel_maximo,localizacion,fecha from materiales where FECHA between #'+datetostr(Fechai.date)+'# and #'+datetostr(Fechaf.date)+'# ';
//query1.SQL.Text:='select numparte,descripcion,unidad,precio,promedio,existencias,nivel_minimo,nivel_maximo,localizacion,fecha from materiales where FECHA between '+inicio+' and '+fin+'' ;
// query1.SQL.Text:='select numparte,descripcion,unidad,precio,promedio,existencias,nivel_minimo,nivel_maximo,localizacion,fecha from materiales where FECHA between '+#39+FECHAI.Date+#39+' and'+#39+FECHAf.Date+#39' ;
showmessage(query1.SQL.Text);
query1.Active:=true;
end;

ramiretor 12-05-2005 00:06:03

Hola:
Como te comenté en la sentencia SQL, puedes poner parámetros:

Código Delphi [-]
query1.SQL.Text:='select ....
                          where fecha = :tdFecha ....';
Query1.ParamByName('tdFecha').ParamType := ptInput;
Query1.ParamByName('tdFecha').DataType := ftDate;
query1.ParamByName('tdFecha').AsDate := MiFecha;

A ver si asi te funciona, como te comente dejas que Delphi haga la conversión de fecha y te dejas los asteriscos y no sé que tanta cosa mas

Un saludo

Ivanzinho 12-05-2005 11:27:29

Hola Carlos, el problema está en la forma que pasas la fecha

Código PHP:

inicio:=formatdatetime('DD/MM/YYYY',FECHAI.Date);
fin:=formatdatetime('DD/MM/YYYY',FECHAf.Date); 

El formato correcto debería ser
Código PHP:

inicio:=formatdatetime('MM/DD/YYYY',FECHAI.Date);
fin:=formatdatetime('MM/DD/YYYY',FECHAf.Date); 

Prueba y ya me contaras

Un saludo


La franja horaria es GMT +2. Ahora son las 19:50:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi