El siguiente codigo (retocado minimamente respecto al que me has pasado) arroja cero registros y deberia haber alguno:
Código SQL
[-]
procedure TForm1.FormShow(Sender: TObject);
var
Dia: String;
begin
Dia:=DateTimeToStr(Now);
with DM.IBQuery1 do
begin
if Active=True then Active:=False;
UnPrepare;
SQL.Clear;
SQL.Add('SELECT DNI1, LETRA_NIF, APELLIDO_1, APELLIDO_2, NOMBRE, MATRICULA, CENTRO, OBJETO, DNI2, DIA_SALIDA, DIA_ENTRADA');
SQL.Add('FROM EXTERNOS_DNI, MOV_EXTERNOS_DNI');
SQL.Add('WHERE DNI1=DNI2 AND DIA_ENTRADA=?DIA_ENTRADA'); {en lugar de ? debe haber dos puntos}
SQL.Add('ORDER BY DNI1');
Params[0].AsString:=Dia;
Prepare;
if Active=False then Active:=True;
Open;
end;
end;
Creo que saber lo que pasa pero no como arreglarlo. La variable dia es un TDateTime convertido a cadena. Por tanto tiene el siguiente formato:
"01/01/2001 10:00:00" y claro, no coincide por el añadido de la hora. Lo suyo seria eliminar de alguna manera (?) el campo hora de la cadena. ¿Pero como?
Gracias de antemano.