PDA

Ver la Versión Completa : Consulta por un campo date a un dbf


fredy_boots
30-10-2003, 23:41:50
Hola amigos, gracias a ROMAN por tratar de ayudarme, pero hago lo que me dice: SELECT * FROM llamadas WHERE (fec_llam between "22/09/2003" and "25/09/2003") y me sale un error que tambien siempre me ha salido: "Type mismatch in expression" , no me lo explico, alguien ha tenido el mismo problema?

Descendents
31-10-2003, 12:53:35
Prueba con esto
[CODE]
const
sel = 'SELECT * FROM llamadas WHERE fec_llam between ''%s'' and ''%s''';
begin
with query do begin
close;
sql.clear;
sql.add(format(sel,['22/09/03','25/09/03']));
open;
end;
[\CODE]

Y tambien estas seguro de que el campo fec_llam es de tipo Date o date time o smalldatetime o algo asi no?

Un saludo

ramiretor
31-10-2003, 17:32:00
Hola:

El manejo de fechas a veces es complicado, incluso aqui donde trabajo para la misma BD es diferente segun la terminal donde estes.
Bueno lo que te recomiendo es que permitas que Delphi te haga la conversion, por ejemplo tu consulta yo la armaria asi:

select * from llamadas where fec_llam between :tdFechaInicial and :tdFechaFinal;

Cuando la quieras abrir
with qry do
begin
Close;
ParamByName('tdFechaFinal') := StrToDate(valorcadena);
ParamByName('tdFechaFinal') := StrToDate(valorCadena);
Open;
end;


Por supuesto que al query le tienes que poner a los parametros que son de tipo Date;
Con eso debe jalar

Un saludo


:)

ramiretor
31-10-2003, 17:54:34
Hola otra vez:
Pero cometi algunos errores en la consulta anterior

ParamByName(tdFechaInicial).AsDateTime := StrToDate(ValorCadena);
ParamByName(tdFechaFinal).AsDateTime := StrToDate(ValorCadena)

a ver si te sirve

:D