Perdonad que os moleste de nuevo con este tema. He usado los parámetros como me habéis dicho pero con este código me da el error:
SQL Error code -303
Arithmetic excepcion, numeric overflow or string truncation.
El código que uso es:
Código Delphi
[-]
HistoricoRecibos.Close;
HistoricoRecibos.SelectSQL.Clear;
HistoricoRecibos.SelectSQL.add('SELECT * from HistoricoRecibos');
HistoricoRecibos.SelectSQL.add('where (Upper(Socio) LIKE :Socio)');
HistoricoRecibos.SelectSQL.add('OR Cast(lpad(extract(Month from FECHAEMISION),2,''0'') as VarChar(3)) || ''.'' ||
Cast(lpad(extract(Day from FECHAEMISION),2,''0'') as VarChar(3)) || ''.'' ||
Cast(extract(year from FECHAEMISION) as VarChar(5)) LIKE :FechaEmision');
HistoricoRecibos.ParamByName('Socio').AsString := '%' + Edit1.Text + '%';
HistoricoRecibos.ParamByName('FechaEmision').AsString := '%' + Edit1.Text + '%';
HistoricoRecibos.QSelect.ExecQuery;
HistoricoRecibos.Open;
Cuando voy introduciendo la fecha en el Edit1 en este formato: ej."23.06.202" hasta aqui funciona bien y hace bien la consulta, pero cuando introduzco el último "0" de "año 2020" me da el error.
He probado con Cast, Extract y este código es el que mas se aproxima a lo que quiero, sabéis que puede pasar para que me de ese error??
Gracias por anticipado.