La Web del Programador: Comunidad de Programadores
 
    Pregunta:  26744 - BUSQUEDA DE PARADOX POR MEDIO DE SQL (FECHAS)
Autor:  Juan Alejandro Hernandez Ramirez
Gracias por leer mi pregunta!

Tengo problemas al querer hacer un listado de una tabla PARADOX por medio de SQL, el problema es con el campo ultimo_mant es de tipo date, segun hace la comparacion pero no muestra los datos que le pido sin embargo lo hago con cualquier otro campo y si los muetra, pero, el que me interesa es el de tipo date(ultimo_mant). mi codigo es el siguiente:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
fecha:string;
begin
Query1.SQL.Clear;
fecha:=datetostr(date);
Query1.SQL.Add('Select clave_equip,Nombre,ult_mant,realizado');
Query1.SQL.Add('from mantenimiento.db');
//** YA UTILICE ESTA LINEA
Query1.SQL.Add('where ultimo_mant="04/01/2002"');
// *** Y ESTA. Y NO FUNCIONA
// Query1.SQL.Add('where ultimo_mant="'+fecha+'"');
Query1.Active:=true;
end;

MUCHAS GRACIAS POR AYUDARME.

  Respuesta:  Paco Govea
// Query1.SQL.Add('where ultimo_mant="'+fecha+'"');
Esta es tu linea que no funciona,
Prueba con esta, ya modificada
Query1.SQL.Add('where ultimo_mant='+#39+fecha+#39);

  Respuesta:  Claudio Romero
Para mas informacion sobre el SQL de la BDE ver el archivo de ayuda que viene con Delphi localsql.hlp, en directorio BDE.

var antrecno:longint;cod_factura,fecha_pago,consulta:string;
anio,mes,dia:word;fecha:TDateTime;
begin
// comprueba que ingreso una fecha valida en Efecha_pago.text
try
fecha:=StrToDate(Efecha_pago.text);
except on EConvertError do
begin
messagebox(application.handle,'La fecha de pago es inválida','ATENCION',MB_APPLMODAL);
exit;
end;
end;
decodedate(fecha,anio,mes,dia);
//La fecha de pago en SQL va en formato mes-dia-año
fecha_pago:='"'+inttostr(mes)+'/'+inttostr(dia)+'/'+inttostr(anio)+'"';
//En la variable fecha de pago queda por ejemplo 12/25/2001
consulta:='UPDATE "factura.db" SET fecha_pago = '+fecha_pago';

Saludos