resulta que tengo que sacar la fecha de ultimo pago de un cliente, para ello lo quiero hacer con la siguiente funcion;
Código Delphi
[-]procedure TFcobro.ultimo_pago;
var wcontrato_meses:string;
wanio_ejercicio:string;
begin
wanio_ejercicio:=FormatDateTime('yyyy',Date);
wcontrato_meses:=Trim(Self.txtcontrato.Text);
if wcontrato_meses<>'' then
begin
with fmodulo.Qry_Temp do
begin
sql.Clear;
SQL.Add('SELECT contrato,anio, Max(Fecha) AS Fecha');
sql.Add('from recibo');
sql.Add('group by contrato,anio');
sql.Add('(((having contrato)=:Pcontrato) and ((anio)=:Panio)');
Parameters.ParamByName('Pcontrato').Value:=Trim(wcontrato_meses);
Parameters.ParamByName('Panio').Value:=Trim(wanio_ejercicio);
try
Open;
if not Fmodulo.Qry_Temp.IsEmpty then
begin
while not Fmodulo.Qry_Temp .Eof do
begin
self.L_ultimaFechaPago.Caption:=DateToStr(FieldByname('fecha').AsDateTime);
Next;
end;
end;
except
on e: EoleException do
begin
MessageDlg(Format('Error: %s Codigo: %d', [E.Message, E.ErrorCode]), mtError, [mbOK], 0);
end;
end;
end;
end;
end;
sin embargo, me muestra un error cuando paso los parametros que es el siguiente:
Error: Error de sintaxis (falta operado) en la expresión de consulta 'anio (((having contrato=?) and ((anio)=?)' codigo: -2147217900
no entiendo por que si ejecuto la consulta desde el analizador de consultas no tengo problemas.
que creen que pueda ser, de antemano muchas gracias por tomarse el tiempo para leer este mensaje.